posted by Full-stack Developer 2014. 4. 16. 13:58

Webapp deploy in tomcat 7.0

 

webapp을 deploy 하는 3가지 방법에 대하여 기술하겠습니다.

 

  1. server.xml
    • 위치 : $TOMCAT_PATH/conf/server.xml
    • server.xml 구조
      <Servers>
        <Service>
           <Engine>
              <Host>
                  //이부분에 Context를 넣어주면됩니다.
                 <Context>
    • <context> 예시
      <Context docBase="test" path="/test" reloadable="true" source="org.eclipse.jst.jee.server:test"/>
       
    • 참고사항
      • tomcat에서 context는 web aplication을 의미합니다.
      • server.xml에 context를 기술하여 사용하는(위와 같은방식)것은 지향하는 추세입니다. server.xml은 tomcat server자체에 대한 설정파일 임에도 불구하고, web context에대하여 설정한다는 것은 목적에 맞지 않기 때문입니다.
         
  2. descriptor file(확장자 .xml)
    • context를 따로 파일로 관리하는 방식입니다.
    • 관리방식
      1. $TOMCAT_PATH/conf/[enginename]/[hostname]/[webappname].xml
      2. $TOMCAT_PATH/webapps/[webappname]/META-INF/context.xml
    • 설명
      • 관리방식의 1은 파일명이 webappname그대로 따른다는 것이고, 2는 webapp의META-INF아래에 context.xml에다가 기술한다는 차이점이 있습니다.
      • 해당 파일에([webappname].xml 혹은 context.xml) server.xml에서 context를 기술하는 것과 마찬가지로 <Context>를 기술하면 됩니다.
  3. auto deploy
    • webapps(appBase경로)폴더에 war파일을 넣어두면 자동으로 deploy하는 방식입니다.
    • 설정방법
      • server.xml에서 Host의 attribute에 autoDeploy를 true설정해줍니다.
        • 예시 : <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
    • 사용방법
      • .war 파일을 appBase에 복사하면 deploy됩니다.
      • 압축해제된 webapp이 appBase 복사되면 deploy됩니다.
      • appBase에 있던 .war가 갱신되면 re-deploy됩니다.(단, host attribute인 unpackWARs가 true여야 합니다.)
        기존에 압축해제된 webapp은 제거되고 갱신된 .war를 압축해제합니다.
      • 압축해제된 webapp에 /WEB-INF/web.xml이 변경되면, re-loading됩니다.
      • webapp의 descriptor file(deploy의 3가지방법 중 2번째 방법 참조)이 변경되면 re-deploy됩니다.
      • $TOMCAT_PATH/conf/[enginename]/[hostname]/[webappname].xml 파일이 추가될경우 re-deploy됩니다.
      • <context docBase="...."  ...>에서 docBase가 삭제되었을때 un-deploy됩니다.

참조 : http://tomcat.apache.org/tomcat-7.0-doc/deployer-howto.html#Deploying_using_the_Client_Deployer_Package

'Programming > Web Programming' 카테고리의 다른 글

Node.js 시작하기  (0) 2014.06.27
JavaScript 개요  (0) 2014.06.24
javascript - oop  (0) 2014.03.14
javascipt Date객체 formatting yyyy-MM-dd hh:mm:ss  (0) 2014.01.13
jQuery - jQuery 시작하기  (0) 2011.11.10