WAS/Tomcat

[Tips] Tomcat 기동 시에 특정 클래스 실행

투칼론 2016. 9. 20. 17:41
반응형

[이슈]


보통 서블릿(servlet)은 처음 요청 처리 시에 로딩된다. 이로 인해 처음 요청 시에 보다 응답 속도가 느리다. 처음 요청 시에도 응답 속도를 빠르게 한다든지, 특정 Cache 영역의 데이터를 초기화 한다든지 등Tomcat 서버 기동 시에 해당 서블릿을 호출이 필요할 때가 있을 것이다.  



[해결책]


web.xml 파일에 <load-on-startup> 엘리먼트에 0 이상 양수값을 추가한다. 실행되는 순서는 값이 적을 수록 먼저 실행된다. 아래 예시에서는 Tomcat 기동 시에 servlet1 -> servlet3 -> servlet2 순서대로 서블릿이 실행된다.


<web-app>  

 ....  

  

  <servlet>  

   <servlet-name>servlet1</servlet-name>  

   <servlet-class>com.yikim.Servlet1</servlet-class>  

   <load-on-startup>0</load-on-startup>  

  </servlet>  


  <servlet>  

   <servlet-name>servlet2</servlet-name>  

   <servlet-class>com.yikim.Servlet2</servlet-class>  

   <load-on-startup>9</load-on-startup>  

  </servlet>  

  

  <servlet>  

   <servlet-name>servlet3</servlet-name>  

   <servlet-class>com.yikim.Servlet3</servlet-class>  

   <load-on-startup>1</load-on-startup>  

  </servlet>  

  

 ...  

</web-app>