개요
myApp 라는 webapp 를 만들고 myApp.war 로 배포할 경우 tomcat 에서는 기본적으로 http://hostname:8080/myApp 같이 URL에 app 명을 주어야 접근할 수 있다.
myApp 를 ROOT Context 에 할당해서 http://hostname:8080/ 로 연결할수 있도록 하는 방법을 정리해 본다
설정
#1 war rename
myApp.war 를 ROOT.war 로 rename 해서 deploy 한다. maven 을 쓸 경우 다음과 같이 finalName 을 설정해서 빌드하거나 서버에 올릴때 ROOT.war 로 변경한다.
< build > <!-- 기본 finalName <finalName>${artifactId}-${version}</finalName> --> < finalName >ROOT.war</ finalName > </ build > |
장점
- 적용하기 매우 쉽다
단점:
- 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
>
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
- tomcat 재구동
장점
- java 로 만든 web app 를 tomcat 을 포함해 외부에 배포할 경우 적당하다. confluence 등의 상용 솔루션이 이런 방식으로 패키징한다.
단점:
- webapps 폴더 밖에 있으면 war 가 자동으로 unpack 되지 않으므로 개발이나 테스트 서버에 적용하기에는 적당하지 않다.
- unpack 되지 않아 log4j 등의 설정을 찾지 못하므로 log4j.properties 등 property 파일은 lib 폴더에 넣거나 war 를 tomcat 구동전에 수동으로 압축을 풀어야 한다.
Ref
- http://wiki.apache.org/tomcat/HowTo#How_do_I_make_my_web_application_be_the_Tomcat_default_application.3F
- http://tomcat.apache.org/tomcat-7.0-doc/config/context.html
- http://stackoverflow.com/questions/5328518/deploying-my-application-in-tomcat-in-the-root
Tomcat에 war파일을 배포
일반적인 경우
1. 프로젝트 war파일 생성
- Eclipse에서 프로젝트 우클릭 -> Export - Web - WAR file 선택 -> Next버튼 클릭
- Destination에 war파일 생성될 위치 지정하고, Finish버튼 클릭
2. Tomcat 폴더/webapps 폴더에 생성된 war파일 이동
3. Tomcat 기동
- Linux 서버일 경우는 Tomcat 폴더/bin/startup.sh를 실행
- Window 서버일 경우는 Tomcat 폴더/bin/startup.bat를 실행
4. http://localhost:8080/war파일명 으로 접속해서 테스트
ROOT에 war파일 배포할 경우
1. 프로젝트 war파일 생성
- Eclipse에서 프로젝트 우클릭 -> Export - Web - WAR file 선택 -> Next버튼 클릭
- Destination에 war파일 생성될 위치 지정하고, 파일명은 반드시 'ROOT.war'로 입력한 후 Finish버튼 클릭
* 파일명을 꼭 ROOT로 해야하는 것은 아니지만 ROOT가 아닌 다른 걸로 하려면 별도의 설정이 필요함
2. Tomcat 폴더/webapps/ROOT 폴더의 이름을 변경
* Tomcat을 설치하면 위 경로에 ROOT폴더가 있는데 이 폴더가 존재하면 ROOT.war가 압축해제되지 않음
3. Tomcat 폴더/webapps 폴더에 생성된 ROOT.war파일 이동
3. Tomcat 기동
- Linux 서버일 경우는 Tomcat 폴더/bin/startup.sh를 실행
- Window 서버일 경우는 Tomcat 폴더/bin/startup.bat를 실행
4. http://localhost:8080/ 으로 접속해서 테스트
출처 : https://www.lesstif.com/pages/viewpage.action?pageId=14745616
'프로그래밍 > OS, Server' 카테고리의 다른 글
[Tomcat] 아파치 톰캣 7 따라잡기 -1 (0) | 2018.08.31 |
---|---|
[Tomcat] 초기 설정 (404,503 에러 발생시) (0) | 2018.08.31 |
[개발환경] 배포 (0) | 2018.06.27 |
[Tomcat] 경고: [SetContextPropertiesRule]{Context} Setting property 'source' to 'org.eclipse.jst.jee.serverr:'' did not find a matching property. (0) | 2018.03.17 |
[Linux] Cent OS 설치 (0) | 2018.01.20 |