Java Java Web Application Server(tomcat, jetty, JBoss 등) Current: tomcat 의 ROOT context 를 임의의 webapp 로 변경하기 tomcat 의 ROOT context 를 임의의 webapp 로 변경하기 개요myApp 라는 webapp 를 만들고 myApp.war 로 배포할 경우 tomcat 에서는 기본적으로 http://hostname:8080/myApp 같이 URL에 app 명을 주어야 접근할 수 있다.myApp 를 ROOT Context 에 할당해서 http://hostname:8080/ 로 연결할수 있도록 하는 방법을 정리해 본다설정#1 war renamemyApp.war 를 ROOT.war 로 rename 해서 deploy 한다. maven 을 쓸 경우 다음과 같이 finalName 을 설정해서 빌드하거나 서버에 올릴때 ROOT.war 로 변경한다. pom.xml <build> <!-- 기본 finalName <finalName>${artifactId}-${version}</finalName> --> <finalName>ROOT.war</finalName> </build> XML 장점적용하기 매우 쉽다단점: build 나 deploy 절차를 변경해야 할 수도 있다.#2 server.xml 변경tomcat 의 context root 설정을 다음과 같이 변경한다. <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="false"> <Context path="" docBase="myApp" reloadable="false" > </Context> </Host> XML side effect ROOT와 myApp 두 개의 Context가 생기는 문제가 있다. #3 app 를 webapps 외부에 위치app 를 webapps 밖에 설정하고 context 에 해당 path 를 지정한다.myApp.war 를 webapps 와 같은 레벨의 위치에 복사conf/server.xml 수정 <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="false" deployOnStartup="false" > <Context path="" docBase="${catalina.home}/myApp" reloadable="false" > </Context> </Host XML tomcat 재구동 장점java 로 만든 web app 를 tomcat 을 포함해 외부에 배포할 경우 적당하다. confluence 등의 상용 솔루션이 이런 방식으로 패키징한다. 단점: webapps 폴더 밖에 있으면 war 가 자동으로 unpack 되지 않으므로 개발이나 테스트 서버에 적용하기에는 적당하지 않다.unpack 되지 않아 log4j 등의 설정을 찾지 못하므로 log4j.properties 등 property 파일은 lib 폴더에 넣거나 war 를 tomcat 구동전에 수동으로 압축을 풀어야 한다.Refhttp://wiki.apache.org/tomcat/HowTo#How_do_I_make_my_web_application_be_the_Tomcat_default_application.3Fhttp://tomcat.apache.org/tomcat-7.0-doc/config/context.htmlhttp://stackoverflow.com/questions/5328518/deploying-my-application-in-tomcat-in-the-root ×