문서의 이전 판입니다!
JBoss EAP 7 Hot Deploy / Development mode 설정
실시간 JSP컴파일 방식을 사용하기 위해서는 소스배포(Unmanaged)형태로 배포하여야 한다. (WAR형태 불가능)
일단 Undertow 파일 감시기능이 JSP파일 변경을 감지 한 후 재컴파일하도록 설정해야 한다.
EAP 7.0.x
EAP 7.0.x 버전에서는 io.undertow.disable-file-system-watcher 시스템 속성을 true로 설정하여 파일 감시자를 비활성화 할 수 있습니다.
JAVA_OPTS="$JAVA_OPTS -Dio.undertow.disable-file-system-watcher=true"
또는 CLI모드로 아래와 같이 지정합니다.
/system-property=io.undertow.disable-file-system-watcher:add(value=true)
EAP 7.1.x 이상
EAP 7.1.0 이상 에서는 undertow subsytem에서 disable-file-watch-service 속성을 true로 설정하여 비활성화 할 수 있습니다.
/subsystem=undertow/servlet-container=default:write-attribute(name=disable-file-watch-service,value=true)
Development mode 설정
파일 감시자가 비활성화 된 경우에도 Undertow 하위 시스템에서 재 컴파일을 활성화 할 수 있습니다. 모든 요청에서 재 컴파일 검사를위한 개발 모드를 사용하십시오.
<subsystem xmlns="urn:jboss:domain:undertow:3.1">
...
<servlet-container name="default">
<jsp-config development="true"/>
<websockets/>
</servlet-container>
CLI모드에서 관련 설정을 한번에 설정 할 수 있습니다.
다만 check-interval 이나 modification-test-interval 수치를 너무 작게 잡으면 서버에서 체크하는 부하가 커지므로 적당한 시간으로 설정하여야 합니다.
해당 값은 초단위입니다.
/subsystem=undertow/servlet-container=default/setting=jsp:write-attribute(name=development,value=true) /subsystem=undertow/servlet-container=default/setting=jsp:write-attribute(name=recompile-on-fail,value=true) /subsystem=undertow/servlet-container=default/setting=jsp:write-attribute(name=check-interval,value=60) /subsystem=undertow/servlet-container=default/setting=jsp:write-attribute(name=modification-test-interval,value=60)
configuration 직접 수정방법
해당 설정파일의 내용중 아래 부분을 추가 하면 된다.
... 생략
<subsystem xmlns="urn:jboss:domain:undertow:3.1">
<buffer-cache name="default"/>
<server name="default-server">
<http-listener name="default" socket-binding="http" redirect-socket="https"/>
<host name="default-host" alias="localhost">
<filter-ref name="server-header"/>
<filter-ref name="x-powered-by-header"/>
</host>
</server>
<servlet-container name="default">
<!-- 아래부분 수정 -->
<jsp-config development="true" check-interval="1" modification-test-interval="1" recompile-on-fail="true"/>
<!-- 여기까지 -->
<websockets/>
</servlet-container>
<handlers>
<file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>
</handlers>
<filters>
<response-header name="server-header" header-name="Server" header-value="JBoss-EAP/7"/>
<response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/>
</filters>
</subsystem>
... 생략
- CLI 명령어로 바꾸기 위해서는 아래 방식을 쓰면 된다.
/subsystem=undertow/servlet-container=default/setting=jsp:write-attribute(name=development,value=true) /subsystem=undertow/servlet-container=default/setting=jsp:write-attribute(name=recompile-on-fail,value=true) /subsystem=undertow/servlet-container=default/setting=jsp:write-attribute(name=check-interval,value=1) /subsystem=undertow/servlet-container=default/setting=jsp:write-attribute(name=modification-test-interval,value=1)