1. 웹 엔진 프로퍼티
웹 엔진에서 제공하는 모든 프로퍼티는 JVM 시스템 프로퍼티뿐만 아니라 가상 호스트별, 웹 애플리케이션별로 적용할 수 있다. 이를 적용하는 방법은 JEUS Web Engine 안내서의 가상 호스트 설정, jeus-web-dd.xml 설정을 참고한다.
JVM 시스템 프로퍼티나 웹 엔진 레벨에서 설정하기 보다는 되도록 가상 호스트 또는 웹 애플리케이션 레벨에서 설정하는 것을 권장한다. |
1.1. 웹 엔진 레벨 프로퍼티
domain.xml의 웹 엔진 레벨로 설정할 수 있는 프로퍼티이다. 가상 호스트, jeus-web-dd.xml에 설정해도 무시한다.
-
jeus.servlet.prevent-forcibly-threadlocal-memoryleak
설명
웹 애플리케이션에서 ThreadLocal 변수를 사용한 후 이를 정확하게 해제하지 않을 경우 발생하는 메모리 누수를 웹 엔진에서 해당 웹 애플리케이션이 리로드되거나 redeploy, undeploy될 때 강제적으로 ThreadLocal 변수를 초기화한다. 그러나 이 옵션을 사용할 경우 다른 웹 애플리케이션에서 설정한 ThreadLocal 변수도 초기화하므로 주의한다.
기본값
false
-
jeus.servlet.request.enableDns
설명
ServletReqeust.getRemoteHost()를 호출할 때 DNS를 통해서 호스트명을 얻어올지 여부를 설정한다. 웹 엔진이 있는 서버의 DNS 접근 여부를 설정하는 것이므로 웹 엔진 레벨 프로퍼티로 제공한다.
기본값
true
-
jeus.servlet.request.url.relativePathInURL
설명
URL에 상대 경로('.' 혹은 '..')가 포함됐을 때 URL 계산 방식을 정의한다
-
not_allowed : URL에 상대 경로가 포함되는 것을 허용하지 않으며 403 Forbidden 에러로 응답
-
replace : 상대 경로를 절대 경로로 계산 후 처리
-
keep : 상대 경로를 계산하지 않고 그대로 처리
기본값
replace
-
-
jeus.servlet.useCaseInsensitiveFileSystem
설명
Linux OS + Windows file server처럼 대소문자 구분 OS에 대소문자 비구분 파일 서버를 사용하는 조합의 경우 요청 주소의 대소문자 구분을 하지 않게되어 원하는 동작을 하지 않을 수 있다. 이 프로퍼티를 사용하면 이런 조합에서도 대소문자를 구분하여 처리하며, 추가적으로 Windows에서만 동작하는 다음 프로퍼티도 사용할 수 있게 된다.
-
jeus.servlet.resource.ignore-filename-case
-
jeus.servlet.jsp.ignore-filename-case
기본값
false
-
-
jeus.websocket.client.requestBufferSize
설명
WebSocketContainer.connectToServer() 호출 시 웹 소켓 헤더들을 포함한 요청을 담을 버퍼 크기를 설정한다.
기본값
8*1024 (단위: byte)
-
jeus.servlet.allowUrlEncodeJsessionid
설명
cookie header(JSESSIONID)에 대해 URL Encoding을 강제로 진행한다. 이 프로퍼티와 동시에 apply-url-encoding-rule가 true일 경우 유효하다.
기본값
false
-
jeus.servlet.validate-2_5-web-xml-changes
설명
web.xml이 2.5 버전을 기준으로 작성되었는지 검사한다.
기본값
true
-
jeus.servlet.jsp.noPackagePrefix
설명
JSP에서 생성되는 Servlet 클래스에 패키지 추가 여부를 설정한다.
기본값
false
1.2. JVM 시스템 프로퍼티
다음은 JVM 시스템 프로퍼티만으로 설정해야 하는 옵션이다.
-
org.glassfish.web.rfc2109_cookie_names_enforced
설명
Cookie 이름에 RFC2109에서 허용하지 않는 문자가 들어간 경우 IllegalArgumentException이 발생한다. jakarta.servlet.http.Cookie에 정의된 내용인데 JEUS 6까지는 API 구현에서 제대로 처리하지 않았다.
기본값
true
1.3. 가상 호스트 레벨 프로퍼티
domain.xml 웹 엔진 설정에서 가상 호스트에 설정할 수 있는 프로퍼티이다. jeus-web-dd.xml에 설정해도 무시한다.
현재 이 레벨의 프로퍼티는 존재하지 않는다. |
1.4. 웹 애플리케이션 레벨 프로퍼티
jeus-web-dd.xml에 설정해서 각 웹 애플리케이션별로 적용할 수 있는 프로퍼티이다. 이 프로퍼티는 웹 엔진 또는 가상 호스트 레벨 프로퍼티로 사용 가능하다.
1.4.1. 공통 또는 Servlet 엔진 관련 프로퍼티
Servlet 또는 JSP 엔진에 적용되는 프로퍼티들이다.
-
jeus.servlet.response.header.serverInfo
설명
헤더에 JEUS 버전 정보 포함 여부를 설정한다.
기본값
false
-
jeus.servlet.keep-original-query-string-on-forward
설명
Forward될 때 original query string을 Request 객체에 그대로 둘지 아니면 forward할 때 넘겨준 query string으로 overwrite할지 여부를 설정한다.
기본값
false
-
jeus.servlet.keep-original-query-string-on-include
설명
include될 때 original query string을 Request 객체에 그대로 둘지 아니면 include할 때 넘겨준 query string으로 overwrite할지 여부를 설정한다.
기본값
false
-
jeus.servlet.out.ensureContentOrder
설명
response.getOutputStream(), response.getWriter(), JspWriter(jsp out)을 섞어서 사용할 때의 출력 순서를 유지할지 여부를 설정한다. 기본적으로는 세 가지 방법을 섞어서 사용하면 안 되고 하나로 통일해서 써야 한다.
기본값
false
-
jeus.servlet.classloader.allowServletAPI
설명
애플리케이션의 클래스 중에서 서블릿 API 관련 클래스를 로딩할지 여부를 설정한다.
기본값
false
-
jeus.servlet.context.attribute.serialize
설명
Context Auto reload할 때 ServletContext attribute를 serialize하여 유지할지 여부를 설정한다.
기본값
false
-
jeus.servlet.resource.ignore-filename-case
설명
ResourceServlet에서 리소스 파일 이름의 대소문자 구별 여부를 설정한다.
Windows OS 혹은 jeus.servlet.useCaseInsensitiveFileSystem이 true인 경우 유효하다.
기본값
false
-
jeus.servlet.response.header.encoding
설명
응답 헤더에 사용할 캐릭터 인코딩을 설정한다.
기본값
null
-
jeus.servlet.scan-servlet-container-initializers
설명
Servlet 3.0부터 추가된 ServletContainerInitializer 메커니즘 사용 여부를 결정한다.
Servlet 표준을 준수하기 위하여 기본적으로 scan 작업을 수행하지만 이로 인해서 디플로이 시간이 늘어날 수 있다.
기본값
true
-
jeus.servlet.sortWebinfLibraries
설명
WEB-INF/lib에 포함된 jar 파일들을 로딩할 때 정렬을 하는 옵션이다.
-
name_asc : 파일 이름으로 오름차순 정렬
-
name_dsc : 파일 이름으로 내림차순 정렬
-
time_asc : 파일의 LMF로 오름차순 정렬
-
time_dsc : 파일의 LMF로 내림차순 정렬
기본값
null
-
-
jeus.servlet.useMetadataCompleteDeploy
설명
Java EE 5부터는 웹 애플리케이션 디플로이 시점에 반드시 Java EE 표준에서 정의한 어노테이션들이 정의된 클래스를 찾도록 되어 있다. WEB-INF/classes의 클래스 파일들 뿐만 아니라 WEB-INF/lib에 포함된 것들도 찾아야 하기 때문에 디플로이 시간이 오래 걸릴 수 있다.
찾는 동작을 하지 않기 위해서는 web.xml의 metadata-complete 설정을 true로 지정해야 한다. 애플리케이션에 포함된 web.xml을 수정하지 않고 jeus-web-dd.xml을 추가해서 metadata-complete 설정을 true로 할 수 있다.
기본값
false
-
jeus.servlet.jsp.allowOnlyStandardizedMethod
설명
JSP 또는 리소스 요청에 대해서 GET, HEAD, POST, OPTIONS, PUT, DELETE, TRACE, CONNECT의 8개의 HTTP method만 허용한다.
기본값
false
-
jeus.servlet.postdataParsingForSPEC
설명
Servlet 표준에 따라 POST 메소드인 경우에만 application/x-www-form-urlencoded을 파싱한다.
기본값
true
-
jeus.servlet.scan-servlet-container-initializers
설명
Servlet 3.0 표준에 의거하여 ServletContainerInitializer를 찾는다.
기본값
true
-
jeus.servlet.response.forceChunkedResponse
설명
모든 http 응답 header를 transfer-encoding :chunked로 나가게 한다.
기본값
false
-
jeus.servlet.tempDir
설명
app에서 사용할 temp dir을 지정할 수 있다.
기본값
null
-
jeus.servlet.response.header.include-content-type-charset
설명
Response 헤더 내 Content-Type에 charset을 포함시킨다.
기본값
true
1.4.2. JSP 엔진 관련 프로퍼티
JSP 엔진에서만 사용하는 프로퍼티들이다.
-
jeus.servlet.jsp.reload
설명
JSP 리로딩 지원 여부를 설정한다.
기본값
true
-
jeus.servlet.jsp.precompile
설명
JSP precompile 지원 여부를 설정한다. (precompile 요청 파라미터에 따라 JSP를 호출할 때 compile만 하는 기능)
기본값
true
-
jeus.servlet.jsp.print.null.as.emptystring
설명
JSP에서 null로 출력할 때 공백 문자의 사용 여부를 설정한다.
기본값
false
-
jeus.servlet.jsp.jspwriter.null
설명
JSP에서 null로 출력할 때 대체할 문자열을 설정한다.
기본값
"null"
-
jeus.servlet.jsp.compile.retrycount
설명
JSP에서 생성된 서블릿을 로딩할 수 없을 때 재컴파일을 시도하는 횟수를 설정한다.
기본값
2
-
jeus.servlet.jsp.compile.delay
설명
FTP 업로드할 때 JSP 지연 컴파일 시간을 설정한다.
동일한 기능의 jeus.jsp.compile.delay는 현재 버전에서는 삭제되어 사용할 수 없다.
기본값
0L (단위: ms)
-
jeus.servlet.jsp.helpReloadNativeLibrariesByCallingSystemGC
설명
JSP를 reload할 때 JSP class loader가 사용한 Native Library가 제대로 cleanup되지 않는 JVM 문제를 해결하기 위한 방편이다.
JSP class loader가 GC(Garbage Collection)될 때 Native Library가 정리되기 때문에 JEUS에서는 System.gc()를 호출해 줄 수 있을 뿐이며, 100% GC된다는 보장이 없다. 따라서 해당 JSP 내에서 System.loadLibrary() 등을 사용하는 경우 reload가 실패할 수 있다.
기본값
false
System.gc()와 System.runFinalization()을 호출하므로 시스템 성능을 저하시킬 수 있다. 따라서 Native Library를 사용하는 JSP를 실제 서비스 운영 중에 수정하지 않기를 권장한다. 가장 좋은 방법은 Native Library를 사용하는 웹 애플리케이션을 별도로 작성해서 그쪽으로 dispatch를 하는 방법이 있다. 그 웹 애플리케이션은 Context Auto Reload나 redeploy하지 않아야 한다.
-
jeus.servlet.jsp.ignore-filename-case
설명
JSP 파일 이름의 대소문자 구별 여부를 설정한다. Windows OS 혹은 jeus.servlet.useCaseInsensitiveFileSystem이 true인 경우 유효하다.
기본값
false
-
jeus.servlet.jsp.assure-utf8-file-encoding-detection
설명
Jasper에서 JSP 파일 Encoding이 UTF-8이라고 확신할 수 없더라도 이를 UTF-8으로 취급한다.
기본값
false
included JSP 파일에도 pageEncoding tag를 기술해야 한다.
-
jeus.servlet.jsp.compile-java-source-concurrently
설명
다수의 JSP 파일들에 대한 컴파일을 동시에 진행할 것인지에 대한 여부를 설정한다.
기본값
false
사용하는 JSP 컴파일러에 동시성 이슈가 없음이 보장될 때만 사용해야 한다.
-
jeus.servlet.jsp.compileConcurrencyLevel
설명
다수의 JSP 파일에 대한 컴파일을 동시에 진행할 때 사용할 스레드 개수를 설정한다. jeus.servlet.jsp.compile-java-source-concurrently가 true인 경우 유효하다.
기본값
1
-
jeus.servlet.jsp.development-mode
설명
JEUS 내 JSP의 development mode를 사용하도록 설정한다. 이 mode를 true로 설정하면, jsp와 tag 파일이 모두 수정될 경우 tag 파일을 재컴파일한다.
기본값
false
-
jeus.servlet.jsp.preventByteOrderMarkJspFileByForcedResponseEncoding
설명
<response-encoding><forced> 설정 값이 UTF-8이 아닐 경우 BOM이 적용된 JSP 파일을 허용하지 않도록 한다. 에러 메시지로 BOMJspFileNotAllowedException이라는 별도의 exception을 던진다.
기본값
false
-
jeus.servlet.jsp.ignore-self-closing
설명
XML 형식의 파일 파싱 시 element의 self-closing 여부(<script …/>)를 설정한다. true이면 self-closing하지 않는다.
기본값
false
-
jeus.servlet.jsp.enforceJspRecompile
설명
JSP 변경 여부에 관계없이 항상 재컴파일한다.
기본값
false
-
jeus.servlet.jsp.jspParam.urlEncode
설명
URL의 파라미터에 대한 인코딩 여부를 설정한다.
기본값
true
1.4.3. 호환성 제공 프로퍼티
JEUS는 기본적으로 Servlet 및 JSP 표준을 준수해야 한다. 하지만 표준 해석 오류, 요구 사항에 대한 구현 누락 등과 같은 개발자의 실수 또는 불분명한 설명, 표준 기술 문서와 API 문서 간의 설명 불일치 등으로 인한 표준 문서의 오류로 인해 API 동작이 달라질 수 있다.
-
jeus.servlet.jsp.modern
설명
false로 설정하는 경우 JEUS 4 호환 JSP 엔진을 사용한다. 이 경우 JSP 1.2 버전만 지원된다. 해당 JSP 엔진은 deprecated되었으므로 더이상 사용하지 않기를 권장하며 본 호환성 프로퍼티도 차기 버전 또는 차기 Fix에서 삭제될 예정이다.
기본값
true
-
jeus.servlet.jsp.compileEncoding
설명
JSP 컴파일 시 사용할 인코딩 값을 지정한다. jeus.servlet.jsp.modern이 false일 때만 사용 가능하다.
기본값
null
-
jeus.servlet.request.url.allowNonStandardPercentCharacterUsage
설명
URL에 단독으로 '%' 문자 사용을 허용한다. 하지만 이는 RFC 2396, 2.4.3. Excluded US-ASCII Characters에 따르면 '%' 문자는 URL escape를 위한 예약어이며, 결코 단독 문자로 사용할 수 없고 정해진 형식으로만 사용 가능하다. 따라서 클라이언트에서 이를 '%25’로 escape해서 보내야 한다.
기본값
false
-
jeus.servlet.request.6CompatibleSetCharacterEncoding
설명
ServletRequest.setCharacterEncoding()으로 세팅한 인코딩은 반드시 Request Body에만 적용해야 한다. 그러나 JEUS 6에서 이를 준수하지 않은 버그가 발견되어, Query String, Cookie와 같이 Request Header를 읽을 때도 사용한다. JEUS 6의 잘못된 동작에 기반하여 작성한 애플리케이션을 수정없이 지원해야 하는 경우 이 옵션을 사용해야 한다.
기본값
false
-
jeus.servlet.request.useResetCharacterEncoding
설명
이미 한번 인코딩된 값을 다른 인코딩 방식으로 재인코딩 하기 위해 사용한다. ServletRequest.setCharacterEncoding()은 getParameter() 또는 getReader() 호출 후에는 비활성화 시키도록 되어있어 재인코딩이 불가능하지만 WebLogic 등의 다른 WAS에서 이를 허용하는 경우가 있어 윈백 시 JEUS도 지원할 수 있도록 한다.
기본값
false
-
jeus.servlet.response.usePercentEncodedLocationHeaderWhenRedirect
설명
IE에서 요청이 들어온 경우 redirect 시 서버의 인코딩으로 location header를 만든다. 문제는 IE 요청의 인코딩 방식이 서버의 기본 인코딩 방식과 다를 경우 location header의 query string을 제대로 인식하지 못하므로 퍼센트 인코딩으로 변환해 query string을 다시 작성할 수 있게 지원한다.
기본값
false
-
jeus.servlet.response.defaultContentType
설명
Content-Type 응답 헤더에 설정할 기본 값이다. 이 값이 null이 아닐 경우 아래와 같은 상황에서 응답 헤더를 설정한다.
ServletResponse.setCharacterEncoding()이나 ServletResponse.setLocale() 호출할 때, Servlet이 명시적으로 ServletResponse.setContentType()을 호출하지 않았다면 이 프로퍼티 값을 Content-Type 헤더로 설정한다. 하지만 이러한 동작은 Content-Type 응답 헤더에 관한 Servlet 표준에 맞지 않는 것이다.
기본값
null
서블릿이 명시적으로 ServletResponse.setContentType()을 호출하지 않았다면 응답 헤더에 Content-Type Header를 넣으면 안 된다고 서블릿 표준에서 규정하고 있다. 또한 ServletResponse.getContentType()를 호출할 때에는 null을 리턴하도록 하고 있다. 이는 Servlet 5.0에서도 명시된 내용으로 JEUS에서 오래 전부터 지키지 않고 있던 사항이다.
따라서 JEUS 7 Fix#1부터는 이를 준수하기 위해 기본값을 null로 변경하였다. 만약 여기에 의존해서 애플리케이션이 동작하고 있었다면 이 프로퍼티 값을 적절한 값으로 설정하기 바란다.
-
jeus.servlet.response.applyContentLanguageProperlyWithSetLocaleAPI
설명
ServletResponse.getWriter() 호출 이후에 ServletResponse.setLocale()을 호출했을 때, Content-Language 응답 헤더는 반드시 설정되어야 한다. 물론 Character Encoding은 바뀌지 않는다. 만약 원하지 않게 Content-Language 응답 헤더가 설정되는 경우에는 이값을 false로 지정한다.
기본값
true
-
jeus.servlet.response.6CompatibleForcedEncoding
설명
xml 설정으로 적용하는 <response-encoding><forced>의 적용 우선 순위를 원래의 의미에 맞지 않게 구현된 JEUS 6 방식으로 동작하게 한다. 원래 forced 옵션은 우선 순위가 가장 높다. 애플리케이션 API를 통해서 세팅하거나 JSP 파일의 page 태그 contentType에 설정된 HTTP 응답 인코딩에 우선한다.
기본값
false
-
jeus.servlet.response.6CompatibleSetCharacterEncoding
설명
ServletResponse.setCharacterEncoding()으로 세팅한 인코딩은 forced 보다 우선 순위가 낮아야 한다. 그러나 JEUS 6 이전까지는 이를 준수하지 않은 버그가 발견되어, 항상 forced 설정을 무시하는 문제가 있다. 만약 이러한 동작에 의존해서 구현된 애플리케이션이 있고 이 동작을 유지하고자 한다면 이 옵션을 true로 설정한다.
Request 쪽과 이름이 유사하므로 서로 헷갈리지 않도록 한다.
기본값
false
-
jeus.servlet.response.allowBothWriterAndOutputStream
설명
HttpServletResponse.getWriter()와 HttpServletResponse.getOutputStream을 동시에 사용할 수 있도록 하는 옵션이다. 스펙에는 reset() 호출시에만 서로 다른 메소드를 사용할 수 있도록 허용하고 있지만, 해당 옵션으로 동시에 사용할 수 있도록 한다.
기본값
false
-
jeus.servlet.session.invalidateBySetMaxInactiveIntervalZero
설명
HttpSession.setMaxInactiveInterval(int timeout)의 경우 Spec에 의해 0 이하의 값은 제거되지 않아야 하는 세션을 의미한다.
그러나 이전 스펙에서 모호하게 타임아웃만큼 유지되는 시간으로 설명이 되어 "0"을 invalidate로 사용하는 유저들이 있었다.
이러한 의미로 사용했던 유저들의 호환성을 위해 설정을 제공한다.
기본값
false
-
jeus.servlet.engine.disableRequestFinishCheck
설명
Request 객체는 서블릿의 service 메소드 내부 혹은 필터의 doFilter 메소드 안에서만 유효하며 이미 처리가 끝난 Request 객체를 사용하려고 하면 IllegalStateException을 발생시키도록 스펙에 정의 되어 있다. 그러나 JEUS 7 이전까지는 이를 확인하지 않고 있어서 처리가 끝난 Request 객체를 사용하는 애플리케이션이 정상적으로 동작하였다.
이러한 애플리케이션을 사용하는 유저들의 호환성을 위해 설정을 제공한다.
기본값
false
-
jeus.servlet.ignoreWebComponentFailureWhenDeploying
설명
디플로이 과정에서 load-on-startup으로 등록된 서블릿의 init(), Filter.init(), ServletContextListener에서 Exception이 발생하더라도 디플로이가 실패하지 않는다.
기본값
false
-
jeus.servlet.classloader.spec23
설명
SRV.9.7.2의 권고대로 WEB-INF 아래의 클래스를 컨테이너 전체에 적용되는 클래스보다 먼저 로딩한다.
기본값
false
-
jeus.servlet.ensure.contentlength
설명
HTTP 1.0 일 때 content-length를 항상 보내도록 설정한다.
기본값
false
-
jeus.servlet.query.encoding.Enabled
설명
HttpServletRequest#getQueryString() return 값에 encoding을 적용하도록 설정한다.
기본값
false
-
jeus.servlet.request.showDefaultPortInRequestURL
설명
JEUS 7 이전 버전에서는 프로토콜이 기본 포트(http: 80, https: 443)로 요청을 보냈을 경우 포트를 삭제하고 응답을 만들었으나 JEUS 7부터 이를 옵션으로 설정이 가능하다.
기본값
false
-
jeus.servlet.jsp.superclass
설명
WebLogic의 경우 weblogic.xml에 jsp 파라미터로 상속 구조를 지정할 수 있으나 JEUS는 org.apache.jasper.runtime.HttpJspBase를 사용한다. 이 값은 시스템 프로퍼티로는 변경이 가능하지만 애플리케이션 레벨에서는 변경이 불가능하기 때문에 애플리케이션 단위로 설정할 수 있는 옵션을 제공한다.
기본값
org.apache.jasper.runtime.HttpJspBase
-
jeus.servlet.jsp.removeJspClassPathExceptContextPath
설명
ejb shared 상태에서 jsp 컴파일이 오래 걸리는 버그가 있었고, 주요 원인은 classpath를 받아오는 동작에서 시간이 오래 걸렸던 것으로 추정된다. 따라서 사용자가 구현한 ejb.jar 파일을 사용해도 컴파일이 가능하다는 점을 사용해 이 시간을 줄일 수 있고 이 과정에서 classpath를 삭제할 수 있는 옵션을 제공한다.
기본값
null
-
jeus.servlet.jsp.addJspClassPath
설명
ejb shared 상태에서 jsp 컴파일이 오래 걸리는 버그가 있었고, 주요 원인은 classpath를 받아오는 동작에서 시간이 오래 걸렸던 것으로 추정된다. 따라서 사용자가 구현한 ejb.jar 파일을 사용해도 컴파일이 가능하다는 점을 사용해 이 시간을 줄일 수 있고 이 과정에서 classpath를 삭제할 수 있는 옵션을 제공한다. 이때 추가 시 full path를 넣어야 한다.
기본값
null
-
jeus.servlet.jsp.taglib.scanTldExceptWEBINF
설명
WEB-INF 상에 과도한 양의 파일을 포함시키면 Tld 스캔 시 너무 오래 걸리거나 StackOverflowError가 발생하기도 한다. 따라서 WEB-INF 폴더 스캔을 생략할 수 있도록 옵션을 제공한다.
기본값
false
-
jeus.servlet.response.sendRedirect.useRelativeRedirects
설명
RFC7231 참고 시 location 헤더에 절대 경로 외에 상대 경로도 허용하도록 바뀐 것으로 보이나 서블릿 스펙에서는 절대 경로를 사용해야 한다고 되어있다. 따라서 상대 경로도 허용하도록 옵션을 제공한다.
기본값
false
-
jeus.servlet.response.sendError.forceFlushBufferWhenInternalServerError
설명
outputstream이나 writer를 사용해 write 도중 500 응답이 발생할 경우 버퍼 안에 있던 내용을 강제로 flush 할 수 있는 옵션을 제공한다.
기본값
false
-
jeus.servlet.request.reuseInputStreamAfterGetParameter
설명
서블릿 스펙에서는 inputStream을 두 번 읽어들이지 못하게 하고 있으나 윈백 시 호환성 문제가 생기는 경우가 있어 옵션을 제공한다.
기본값
false
-
jeus.servlet.request.parameter.UnescapeJavascriptEscapedParameter
설명
resin과 인코딩 호환성 옵션을 제공한다. 참고로 스펙 위반이다.
기본값
false
-
jeus.servlet.request.allowContentLengthAndTransferEncodingSimultaneously
설명
JEUS에서는 transfer-encoding 헤더와 content-length 헤더가 동시에 들어온 경우나 content-length 헤더가 여러 개 들어온 경우 http smuggling attack으로 인식해 요청을 일괄적으로 막지만 RFC7230 상으로는 이와 상충되는 내용이 있어 동시에 들어와도 attack으로 인식하지 않는 옵션을 제공한다.
기본값
false
-
jeus.servlet.makeThreadDumpBoundarySize
설명
현재 서버에서 동작하는 Thread 개수가 설정 값을 초과하는 경우 dump를 찍을 수 있게 설정한다.
기본값
0
-
jeus.servlet.makeThreadDumpRestartCount
설명
Thread 모니터에 의해 증가하는 restart count가 설정 값을 초과하는 경우 restart를 시도할 수 있게 설정한다.
기본값
0
-
jeus.servlet.makeThreadDumpRestartWithoutNodemanager
설명
nodemanager가 없어도 시스템을 종료할 수 있게 설정한다.
기본값
false
-
jeus.servlet.makeThreadDumpMonitoringInterval
설명
Thread 모니터가 jeus.servlet.makeThreadDumpBoundarySize 값을 체크하는 주기를 설정할 수 있다.
기본값
0
-
jeus.servlet.makeThreadDumpIntervalSecond
설명
Thread 모니터뿐만 아니라 새로운 Thread가 시작 전에 jeus.servlet.makeThreadDumpBoundarySize값을 체크하여 Thread dump를 찍도록 설정할 수 있다.
기본값
300
-
jeus.servlet.loader.ignoreAutoReloadAfterHotSwapFailed
설명
예전 JEUS 버전에서는 Jeus Hot Swap 옵션이 적용되어 있을 때 클래스가 하나라도 실패하면 auto-reload(context 전체 reload)를 진행했으나 이를 옵션으로 설정할 수 있게 제공한다.
기본값
false
-
jeus.servlet.ignoreUserInfoInRequestURI
설명
RFC7230 참고 시 request-uri에 user info가 있을 경우 에러로 처리하라고 나와있으나 예전 JEUS 버전에서는 해당 처리 없이 그냥 request uri로 인식하고 있었다. 따라서 request-uri에 user info가 있으면 에러를 발생시키도록 수정하였고, 호환성을 위해 user info가 있을때도 에러를 발생시키지 않는 옵션을 제공한다.
기본값
false
-
jeus.servlet.engine.waitForWorkerDestroy
설명
내장 WebtoB에서 local-shutdown 호출 시 worker thread를 SocketTimeoutException이 발생할 때까지 기다리지 않으면 OS 레벨에서 에러를 발생시키는 문제가 있다. 이는 추후 수정될 예정이지만 현재 구현 단계이므로 우선 정상 동작을 위해 옵션으로 제공한다.
기본값
true