본문 바로가기
MiddleWare(미들웨어)/JEUS

[JEUS] jeus-web-dd.xml 태그 활용하기

by wonkidoki 2024. 1. 24.
반응형

- 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>