- JEUS5, 6 버전을 사용하는 경우 jeus-web-dd.xml 파일을 사용하곤 한다.
- APP_HOME/WEB-INF 경로에 jeus-web-dd.xml 파일을 넣어야 한다.
- JEUS7,8 버전도 사용하기는 하나 특별한 경우 아니면 사용 하지 않으니 버전 업그레이드 하는 경우 해당 파일을 지우거나 백업해도 무방하다.
- webddgen 명령어를 사용하면 APP 경로에 자동으로 jeus-web-dd.xml 파일을 생성할 수 있다.
- jeus-web-dd.xml 파일은 JEUS 에서 아닌 JEUS가 APP를 로딩하는 과정에서 APP 단위로 옵션을 적용하는 방식이다.
webddgen 사용법
- webddgen -file <war-file-path> [-ctx <context-path>] [-prop <context-level-property>] [-verbose]
- 파라미터
- 파라미터설명
-file <war-file-path> 웹 모듈의 경로를 설정한다.
.war 확장자를 갖는 JAR 형식의 압축 파일이거나 디렉터리이다.[-ctx <context-path>] jeus-web-dd.xml에 설정할 context-path 정보이다. [-prop <context-level-property>] 웹 모듈(Web Context) 단위로 설정하는 프로퍼티이다.
예를 들어 JEUS 4에서 작성한 JSP를 수정하지 않고 사용하려면 해당 JSP가 포함된 웹 모듈의 jeus.servlet.jsp.modern 프로퍼티를 false로 설정한다. 프로퍼티 형식은 name=value이다.
(예: jeus.servlet.jsp.modern=false)[-verbose] 동작에 문제가 있을 때 디버깅 용도로 사용할 수 있다. 이를 위해서 webddgen 내부적으로 생성하는 디렉터리를 삭제하지 않는다. 단, webddgen을 재실행할 때 삭제한다. - 예제
- 사용법을 출력한다.
- $ webddgen -help
- web.war에 jeus-web-dd.xml을 생성한다.
- $ webddgen -file web.war
- jeus-web-dd.xml을 생성할 때 context-path를 추가한다.
- $ webddgen -file web.war -ctx /web1
jeus-web-dd.xml 파일에 주로 사용하는 태그
<context-path>
Context Root이다. 만약, "webapp"라는 웹 애플리케이션의 컨텍스트 경로가 "/examples"이라면 "http://www.foo.com/examples/index.html" URL은 "webapp"에 포함된 index.html 파일을 클라이언트로 전송한다.
- JEUS7 이상 버전에서는 Webadmin을 통해 배포하면서 context path를 지정할 수 있다.
<enable-jsp>
JSP 엔진의 사용 여부를 설정한다. false로 설정하면 JSP 파일에 대한 서비스를 하지 않으며, 일반 resource로 취급한다. 즉, false인 경우에는 jsp 소스 파일을 웹 애플리케이션 상에 포함하면 안 된다.
<auto-reload>
만일 클래스가 변경되면 서블릿 클래스와 Custom 태그 클래스를 자동으로 Reload 할지를 결정한다. 이 설정은 변경 여부의 점검과 Reload를 수행함에 있어 여분의 자원을 요구하기에 개발 환경에서만 활성화하길 권장한다
- 매 요청시마다 reload check 하기 때문에 요청이 많은 서비스일 경우 과부하가 발생할 수 있다.
- 해당 설정을 하려면 JEUS7 이상 버전에서는 개발 모드로 변경해야 한다.(domain.xml 수정 필요)
<enable-reload>
Servlet Auto-Reload의 사용 여부를 결정한다.
<check-on-demand>
서블릿 클래스 Reload를 각 요청이 도달할 때마다 점검할지 여부를 지정한다.
<webinf-first>
클래스를 로딩할 때 웹 애플리케이션에 지정된 클래스 패스 내에서 먼저 찾을 것인지 여부를 설정한다. true로 설정할 경우 중복된 클래스로 인한 ClassCastException을 주의해야 하며 <excluded-pacakge>로 예외 패키지, 클래스를 지정할 수 있다.
- JEUS7 이상 버전은 JEUS 와 class 충돌 되지 않는 한 APP의 소스를 우선적으로 본다.
<encoding>
request, response 할 때 encoding 값을 설정한다.
- JEUS7 이상 버전에서는 webadmin을 통해 encoding 설정을 제공한다.
jeus-web-dd.xml 예시
<?xml version="1.0"?>
<jeus-web-dd xmlns="http://www.tmaxsoft.com/xml/ns/jeus">
<context-path>/examples</context-path>
<enable-jsp>true</enable-jsp>
<auto-reload>
<enable-reload>true</enable-reload>
<use-jvm-hotswap>true</use-jvm-hotswap>
<check-on-demand>true</check-on-demand>
<reload-timeout>31000</reload-timeout>
</auto-reload>
<fast-deploy>true</fast-deploy>
<webinf-first>
<enabled>true</enabled>
</webinf-first>
<encoding>
<request-encoding>
<default>UTF-8</default>
<forced>UTF-8</forced>
</request-encoding>
<response-encoding>
<default>UTF-8</default>
<forced>UTF-8</forced>
</response-encoding>
</encoding>
</jeus-web-dd>