목차

reloadable 속성과 development mode

reloadable

참조링크 : https://tomcat.apache.org/tomcat-7.0-doc/config/context.html

공식홈페이지의 해당 속성 설명에 의하면 “true”로 설정할 시 (기본값:false)

/WEB-INF/classes/
/WEB-INF/lib/

디렉토리에 한해서 변경시 Context Reload가 발생한다고 명시 되어있음
WEB-INF/web.xml
파일 변경시에는 reloadable=“false”와 상관없이 무조건 reload가 발생함

이것은 톰캣 기본 설정으로 지정되어있는 부분인데
conf/context.xml
내에 아래와 같이 지정되어있으므로 변경시 reload가 발생함.

<Context sessionCookieName="${tomcat.engine.sessionCookieName}" reloadable="false">

    <!-- Default set of monitored resources -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>

    <!-- Uncomment this to disable session persistence across Tomcat restarts -->
    <!--
    <Manager pathname="" />
    -->

    <!-- Uncomment this to enable Comet connection tacking (provides events
         on session expiration as well as webapp lifecycle) -->
    <!--
    <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
    -->

</Context>

<WatchedResource>WEB-INF/web.xml</WatchedResource>

이 부분을 주석처리하게 되면 web.xml이 변경되어도 context reload는 발생하지 않음.

또한 본 속성값을 “false”로 한다 하여도 jsp파일 변경시에는 무조건 갱신되는것을 알 수 있음.
(단, development mode에서 발생하며 다음장에 설명함)

development mode

참조링크 : http://tomcat.apache.org/tomcat-7.0-doc/jasper-howto.html

    <servlet>
        <servlet-name>jsp</servlet-name>
        <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
        <init-param>
            <param-name>fork</param-name>
            <param-value>false</param-value>
        </init-param>
        <init-param>
            <param-name>development</param-name>
            <param-value>true</param-value>
        </init-param>
        <init-param>
            <param-name>xpoweredBy</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>3</load-on-startup>
    </servlet>