<<__Exception__>>
java.io.EOFException
	at java.io.DataInputStream.readFully(DataInputStream.java:197)
	at jeus.servlet.engine.WJPV1Registration.readRegstrationReply(WJPV1Registration.java:111)
	at jeus.servlet.engine.WebtoBConnectionManager.registerToWebtoB(WebtoBConnectionManager.java:239)
	at jeus.servlet.engine.WebtoBConnectionManager.createConnection(WebtoBConnectionManager.java:93)
	at jeus.servlet.connection.WebtoBConnector.run(WebtoBConnector.java:177)
	at java.lang.Thread.run(Thread.java:750)
<<__!Exception__>>
[2023.01.12 10:02:23][1] [cyedu1-180] [WEB-3456] Executing the servlet action failed.
<<__Exception__>>
javax.servlet.ServletException: java.lang.reflect.InvocationTargetException
	at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:905)
	at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:834)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:786)
	at jeus.servlet.jsp.JspServletWrapper.executeServlet(JspServletWrapper.java:80)
	at jeus.servlet.engine.RequestDispatcherImpl.processCommonRequestDispatcher(RequestDispatcherImpl.java:475)
	at jeus.servlet.engine.RequestDispatcherImpl.include(RequestDispatcherImpl.java:572)
	at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:160)
	at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:304)
	at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1286)
	at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1041)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:984)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:683)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:786)
	at jeus.servlet.engine.ServletWrapper.executeServlet(ServletWrapper.java:170)
	at jeus.servlet.engine.RequestDispatcherImpl.processCommonRequestDispatcher(RequestDispatcherImpl.java:475)
	at jeus.servlet.engine.RequestDispatcherImpl.include(RequestDispatcherImpl.java:572)
	at org.apache.taglibs.standard.tag.common.core.ImportSupport.acquireString(ImportSupport.java:314)
	at org.apache.taglibs.standard.tag.common.core.ImportSupport.doEndTag(ImportSupport.java:171)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:786)
	at jeus.servlet.jsp.JspServletWrapper.executeServlet(JspServletWrapper.java:80)
	at jeus.servlet.engine.RequestDispatcherImpl.processCommonRequestDispatcher(RequestDispatcherImpl.java:475)
	at jeus.servlet.engine.RequestDispatcherImpl.include(RequestDispatcherImpl.java:572)
	at org.apache.taglibs.standard.tag.common.core.ImportSupport.acquireString(ImportSupport.java:314)
	at org.apache.taglibs.standard.tag.common.core.ImportSupport.doEndTag(ImportSupport.java:171)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:786)
	at jeus.servlet.jsp.JspServletWrapper.executeServlet(JspServletWrapper.java:80)
	at jeus.servlet.engine.RequestDispatcherImpl.processCommonRequestDispatcher(RequestDispatcherImpl.java:475)
	at jeus.servlet.engine.RequestDispatcherImpl.doForward(RequestDispatcherImpl.java:392)
	at jeus.servlet.engine.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:369)
	at org.apache.tiles.servlet.context.ServletTilesRequestContext.forward(ServletTilesRequestContext.java:241)
	at org.apache.tiles.servlet.context.ServletTilesRequestContext.dispatch(ServletTilesRequestContext.java:222)
	at org.apache.tiles.renderer.impl.TemplateAttributeRenderer.write(TemplateAttributeRenderer.java:44)
	at org.apache.tiles.renderer.impl.AbstractBaseAttributeRenderer.render(AbstractBaseAttributeRenderer.java:106)
	at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:670)
	at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:690)
	at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:644)
	at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:627)
	at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:321)
	at org.springframework.web.servlet.view.tiles2.TilesView.renderMergedOutputModel(TilesView.java:112)
	at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:304)
	at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1286)
	at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1041)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:984)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:683)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:786)
	at jeus.servlet.engine.ServletWrapper.executeServlet(ServletWrapper.java:170)
	at jeus.servlet.filter.FilterChainImpl.internalDoFilter(FilterChainImpl.java:112)
	at jeus.servlet.filter.FilterChainImpl.doFilter(FilterChainImpl.java:86)
	at egovframework.com.sec.security.filter.EgovSpringSecurityLoginFilter.doFilter(EgovSpringSecurityLoginFilter.java:336)
	at jeus.servlet.filter.FilterChainImpl.internalDoFilter(FilterChainImpl.java:98)
	at jeus.servlet.filter.FilterChainImpl.doFilter(FilterChainImpl.java:86)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:66)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:155)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)
	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)
	at jeus.servlet.filter.FilterChainImpl.internalDoFilter(FilterChainImpl.java:98)
	at jeus.servlet.filter.FilterChainImpl.doFilter(FilterChainImpl.java:86)
	at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:96)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at jeus.servlet.filter.FilterChainImpl.internalDoFilter(FilterChainImpl.java:98)
	at jeus.servlet.filter.FilterChainImpl.doFilter(FilterChainImpl.java:86)
	at egovframework.com.cmm.filter.HTMLTagFilter.doFilter(HTMLTagFilter.java:35)
	at jeus.servlet.filter.FilterChainImpl.internalDoFilter(FilterChainImpl.java:98)
	at jeus.servlet.filter.FilterChainImpl.doFilter(FilterChainImpl.java:86)
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at jeus.servlet.filter.FilterChainImpl.internalDoFilter(FilterChainImpl.java:98)
	at jeus.servlet.filter.FilterChainImpl.doFilter(FilterChainImpl.java:86)
	at jeus.servlet.engine.ServletWrapper.execute(ServletWrapper.java:145)
	at jeus.servlet.engine.RequestProcessor.run(RequestProcessor.java:235)
	at jeus.util.pool.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:1299)
	at jeus.util.pool.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:1343)
	at jeus.servlet.engine.WebThreadPoolExecutor$WebRequestWorker.run(WebThreadPoolExecutor.java:340)
	at java.lang.Thread.run(Thread.java:750)
Caused by: java.lang.reflect.InvocationTargetException
	at jeus.servlet.jsp.InstanceManagerImpl.injectToInstance(InstanceManagerImpl.java:68)
	at jeus.servlet.jsp.InstanceManagerImpl.newInstance(InstanceManagerImpl.java:43)
	... 118 more

 

 

java.io.EOFException

at java.io.DataInputStream.readFully(DataInputStream.java:197) at jeus.servlet.engine.WJPV1Registration.readRegstrationReply(WJPV1Registration.java:111) at jeus.servlet.engine.WebtoBConnectionManager.registerToWebtoB(WebtoBConnectionManager.java:239) at jeus.servlet.engine.WebtoBConnectionManager.createConnection(WebtoBConnectionManager.java:93) at jeus.servlet.connection.WebtoBConnector.run(WebtoBConnector.java:177)


원인

JEUS WEBMain.xml<webtob-listener>- <thread-pool>의 min/max 값과

Webtob http.m *SERVER절의 MinProc/MaxProc값이 다를 때 발생

 

(http.m의 설정값이 더 크거나 같아야 함)

 

WEBMain.xml
http.m


 

JEUS WEBMain 또는 Domain.xml file 에서 Session 설정 적용해도

정상적으로 적용되지 않는 경우가 발생한다.

 

application에서 session timeout 을 설정하지 않았는지 확인해야 한다. 


세션 우선 순위 : application setting > server setting

 

web.xml > webcommon.xml > WEBMain.xml


[1순위]

/WEB-INF/web.xml

<web-app>

<session-config>

<session-timeout>60</session-timeout> [단위 : 분]

</session-config>

</web-app>


[2순위]

/WEB-INF/web.xml

${JEUS_HOME}/config/컨테이너명/엔진명/webcommon.xml

<web-app>

<session-config>

<session-timeout>30</session-timeout> [단위 : 분]

</session-config>


 

[3순위]

SERVLET_ENGINE/WEBMain.xml

 

<web-container>

<context-group>

...

<session-config>

<timeout>30</timeout> [단위 : 분]

<shared>false</shared>

</session-config>

...

</context-group>

</web-container>

 

session-cookie = true

세션을 전달하는 세션 트래킹의 방법으로 쿠키를 사용할 때 세션을 쿠키로 전달할지를 설정한다.


 

 

 

WAR 파일로 배포할 경우

 

JEUS에서 context path를 명시적으로 설정하지 않을 경우, 기본적으로 웹 애플리케이션의 WAR 파일 이름이 context path로 사용된다.

 

ex) example.war 파일로 배포된 애플리케이션의 경우, context path는 /example 이 된다.

 

ROOT.war라는 이름으로 애플리케이션을 배포하면, 그 애플리케이션은 root context path, 즉 /에서 서비스되는데, 이럴 경우 웹 브라우저에 서버의 도메인 이름만 입력해도 해당 애플리케이션에 접근할 수 있게 된다.

 

 

app2.war 구성

  •   app2.war
    • app 
      • test2.jsp
1. 배포된 app2.war 의 파일 명인  'app2' 가 context path로 설정됨
2. app2.war 파일 내 app 디렉토리가 있고 하위에 test2.jsp가 있으므로 하위 경로까지 URL에 모두 입력하여 호출

디렉토리로 배포할 경우

 

.war 파일이 아닌 디렉토리로 애플리케이션을 배포할 때, 그 디렉토리의 이름이 기본적으로 context path로 사용된다.

 

ROOT라는 이름의 디렉토리를 사용하여 애플리케이션을 배포하면, 그 애플리케이션은 루트 경로 즉, /에서 접근 가능하게 된다.

ACCESS / DENY 설정

Client에서 접속을 시도할 때, 특정 IP address 나 newtork/netmask 들을 기준으로 요청에 대한 ACCESS/DENY를 설정할 수 있다.

    • 요청 허용과 제한이 적용되는 순서 설정
    • ACCESS 절은 DIRECTORY/URI/EXT/TCPGW 절에 적용될 수 있으며, 각각에서 정의한 리소스를 허용 또는 제어한다. 

예시

ACCESS 절 추가

#WebtoB
vi http.m

#ACESS절 추가
*ACCESS
#특정 IP만 DENY, 그 외 모든 IP 허용
access1  Order = "allow, deny", Allow = "all"
access2  Order = "deny, allow", Deny = "[IP 1],[IP 2]",Allow = "[IP 1],[", 
access3  Order = "allow, deny", Allow = "211.1.1.0/255.255.255.0"
access4  Order = "deny, allow", Deny = "211.1.1.30"
access5  Order = "allow, deny", Allow = "all",Deny = "211.1.1.30"

ACCESS 절은 Order 옵션의 순서에 따라 설정이 다르게 적용된다.

allow, deny : Method> Allow> AllowIf> Deny> DenyIf 순서로 match 한다.

deny, allow : Method > Deny > DenyIf > Allow > AllowIf 순서로 match 한다.

vi http.m

*ACCESS
access1  Order = "allow, deny", Allow = "all"
access2  Order = "allow, deny", Allow = "211.1.1.10, 211.1.1.20"
access3  Order = "allow, deny", Allow = "211.1.1.0/255.255.255.0"
access4  Order = "deny, allow", Deny = "211.1.1.30"
access5  Order = "allow, deny", Allow = "all",Deny = "211.1.1.30"

 

필수 옵션 ACCESS name = <string> Access 절의 이름을 임의로 정할 수 있다.
선택 옵션 Method = <literal> 적용 할 HTTP 메소드를 설정한다.
MethodException = <literal> 제외 할 HTTP 메소드를 설정한다.  
Order = <literal>    
Default - "Deny,Allow" Allow, AllowIf, Deny, DenyIf, Method가 적용되는 순서를 설정한다 (하단 표 참조)  
Allow = <literal> 요청이 허용되는 IP 주소나 network/netmask들을 설정  
Deny = <literal> 요청이 거절되는 IP 주소나 network/netmask들을 설정  

 


GOTOEXT = Y 설정이 들어가 있는 경우

GOTOEXT = Y 설정이 있는 경우, JEUS를 거치지 않고 바로 WebtoB로 요청을 처리하기 때문에 URI로 요청이 가지 않는다.

이럴 경우, 요청을 받는 해당 vhost에 rewrite 설정을 통하여 특정 IP에 대한 요청을 처리해야 한다.

  • URLRewrite
  • URLRewriteConfig
vi http.m

v_test          DOCROOT="/home/webtob5/webtob/docs/",
                HOSTNAME = "mail.test.com",
                HOSTALIAS = "192.168.40.137",
                PORT = "80",
                ServiceOrder = "uri,ext",
                ERRORDOCUMENT = "403,404,503",
                METHOD = "GET, POST, -HEAD, -OPTIONS",
                #Headers = "gzip,cors_all",
                #Headers ="security,X-XSS,X-Content,strict,X-Download",
                **URLRewrite = Y,
                URLRewriteConfig = "$WEBTOBDIR/config/rewrite.conf",**
                LOGGING = "acc_test",
                ERRORLOG = "err_test"
vi rewrite.conf

RewriteCond %{REQUEST_URI} !error ## 무한 redirect 방지
RewriteCond %{REMOTE_ADDR} ^139.xx.xx.132$ ##특정 ip 
RewriteRule . <https://xxx.go.kr/err/error.html> ##호출 url 페이지

즉, IP가 139.xx.xx.132로 들어오는 요청에 대해 https://xxx.go.kr/err/error.html errorpage로 redirect 시키겠다는 의미이다.

WebtoB는 Apache와 동일한 형식으로 로그를 기록하고 있으며 포맷도 동일하게 사용한다.


WebtoB 로그 구분

- syslog

  WebtoB Engine에서 남기는 로그로 WebtoB의 이상 유무를 체크하여 로그로 남긴다.

  특이한 이상이 없는 한 많은 로그를 남기지 않는다.

  일별로 생성되며 기본위치는 $WEBTOBDIR/log/syslog 이다.

 

- errorlog

  클라이언트가 웹으로 접속하여 호출 시 에러가 발생하는 모든 uri 정보를 남긴다.

  일별로 생성되며 기본위치는  $WEBTOBDIR/log/errorlog 이다.

 

- accesslog

  클라이언트가 웹으로 접속 시 호출하는 모든 요청정보를 남긴다.

  요청이 많으면 파일크기가 상당히 커지므로 로그 관리에서 access log 관리가 가장 중요하다.

  일별로 생성되며 기본위치는  $WEBTOBDIR/log/accesslog이다.

 


WebtoB 로그 포맷

webtob는 기본 로그 포맷으로 3가지 alias를 제공하고 있다.

  • Default
  • COMMON
  • COMBINED

보안 취약점 조치를 위해 WebtoB Access log의 포맷 변경이 필요할 경우 DEFAULT -> COMBINED로 변경하면 된다.

 

 

Default : [요청 IP] [요청처리를 완료한 시간] [HTTP Request의 Request line 전체] [HTTP Status Code] [헤더를 제외한 응답의 Byte] [요청 처리하는데 소요된 시간 ms]

 


USERLOGFORMAT 설정

WebtoB5 에서는 공통으로 사용될 로그 포맷을 설정할 수 있도록 *USERLOGFORMAT 절을 제공하고 있다.

기존 VHOST가 많을 경우에 동일한 포맷을 설정하고자 할 때 해당 *USERLOGFORMAT 절에 사용자가 로그 포맷을 설정하고 *LOGGING 절에서 해당 설정 포맷을 사용할 수 있도록 하였다.

 

*LOGGING
log1        Format = "format1", FileName = "C:/TmaxSoft/WebtoB4.1.9.1/log/access.log",
            Option = "sync"
            ...
*USERLOGFORMAT
format1     Format = "%h %l %u %t \"%r\" %s %b" 



JEUS 설치 JAVA 버전과 jeus.properties 내 JAVA 버전이 동일하지만

/etc/hosts에 설정된 IP 또는 hostname이 서버 IP 또는 Hostname 과 불일치 할 경우

 


java.lang.ExceptionInInitializerError
        at jeus.tool.console.console.jeus.JeusJMXConsoleContext.onCreate(JeusJMXConsoleContext.java:261)
        at jeus.tool.console.console.jeus.JeusJMXConsole.<init>(JeusJMXConsole.java:69)
        at jeus.tool.console.console.ConsoleMain.main(ConsoleMain.java:8)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at jeus.server.Bootstrapper.callMainMethod(Bootstrapper.java:590)
        at jeus.server.Bootstrapper.callMain(Bootstrapper.java:597)
        at jeus.server.Bootstrapper.main(Bootstrapper.java:145)
        at jeus.tool.console.ConsoleBootstrapper.main(ConsoleBootstrapper.java:11)
Caused by: java.lang.NullPointerException
        at jeus.util.net.NetworkConstants.<clinit>(NetworkConstants.java:88)
        ... 11 more

 



jeus.properties 내 JAVA버전이 JEUS 설치 버전보다 낮을 경우

 

Exception in thread "main" java.lang.UnsupportedClassVersionError: jeus/server/Bootstrapper : Unsupported major.minor version 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:808)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:443)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:65)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:349)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:348)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:430)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:326)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:363)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

 

 




jeus.properties 내 JAVA버전이 JEUS 설치 버전보다 높을 경우

 

-Djava.endorsed.dirs=/home/jeus8_1/jeus8_5/lib/endorsed is not supported. Endorsed standards and standalone APIs
in modular form will be supported via the concept of upgradeable modules.
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

 

ISSUE

클라이언트가 웹 페이지 호출 시 페이지가 정상적으로 작동하지 않음

JEUS Container Log 확인결과  failed because of java.net.SocketTimeoutException: Read timed out 발생

 

 

TimeOut?

프로그램이 특정 시간 내에 성공적으로 수행되지 않아서 진행이 자동적으로 중단되는 것

응답을 무한대로 기다릴 수 없기 때문에 기다리는 시간을 정해주어야 한다.

 

Read TimeOut (단위 ms)

JEUS에서 Web Connection을 통해 Web Server와 커넥션을 맺는다.

ReadTimeOut 시간을 설정하여 Web Server로부터 아무런 메시지가 오지 않는다면 커넥션에 문제가 있다고 간주하고 새 커넥션을 맺는다.

 

SvrChkTime

서버와의 연결이 정상인지 확인하기 위해 체크하는 시간을 설정하며 방화벽을 사이에 두고 연결된 JEUS와의 연결을 확인하는 데 사용된다.

 

SvrChkTime을 설정하고 서비스 요청이 없는 Ready 상태의 커넥션에 대해서 연속된 2회의 SvrChkTime에 의한 KeepAlive 요청에도 응답이 없으면 해당 커넥션에 이상이 발생했다고 인식하고 해당 커넥션을 단절하여 서비스 분배에서 제외한다.

 

 

■ http.m

*Server 절의 해당 Server에 설정한다.

설정 확인

wsadmin -i

cfg -svr


Read-timeout 산출 공식


(SvrChkTime X 2000) - 10000

 


 

이슈 날짜 2020/10/15

Version : JEUS7

로그 레벨 조정하지 않았는데 해당 로그 생성되는 형상

 

[2] [SESSION-49001] JeusStandardSessionManager[server1]: Local sessions were scavenged. total=208, valid=192, invalid=16 [1]

 

적용된 패치 목록 : 2020년 7월 2차 통합패치(jext_v7005_202007_2_unified.jar)

 

 

JeusStandardSessionManager[server1]: Local sessions were scavenged. total=208, valid=192, invalid=16\

 

최신 패치가 적용되었다면 로그 레벨 INFO에서 해당 내용이 나타나지 않아야 하지만, 해당 패치 버전은 이슈 해결 이전의 패치였기 때문에 Default INFO 로그로 설정이 되어있지만 FINE에서 발생하는 로그가 찍힌 것으로 확인됨

 

TmaxSoft TechNet에서 JEUS 최신 패치 다운로드 및 적용 필요

https://www.tmaxsoft.com/kr/download/middleware/JEUS

 

로그인 | 티맥스소프트

티맥스소프트 웹사이트 회원이 되시면 웹사이트의 다양한 서비스를 경험할 수 있습니다.

www.tmaxsoft.com

 

+ Recent posts