티스토리 뷰

개발/자바

[TOMCAT] 수동으로 배포해 보기

까매요~ ccambo 2016.11.22 11:33

별다른 상황이 없다면 개발하는 동안에 Eclipse 에서 Servers 로 Tomcat 을 등록하고 Publish 를 하고 사용하게 된다. 그러나 상황에 따라서는 Eclipse 를 이용하지 않고 Tomcat 에 직접 배포를 해서 테스트를 해야하는 상황이 발생하게 된다. 이 글을 작성하게 된 것도 Eclipse에서 Tomcat 를 실행하면 아무 문제 없는데 테스트 서버에 배포를 해서 실행하게 되면 Tomcat 실행 중에 오류가 발생하는 것 때문이다. 임시로 간략하게 테스트 한 것을 정리해 놓도록 한다.

Tomcat 은 설치 버전이 아니라 Zip 배포 버전을 사용하였고, 위치는 D:\Tomcat7 이며, 웹 어플리케이션은 test-apps (프로젝트 명)라고 가정하고 테스트를 진행하도록 한다. (단, 하기의 내용은 실제 각 개발자의 환경에 따라서 다를 수 있으므로 반드시 맞는 방법이라고 할 수는 없다)

배포 대상 생성 및 복사

Eclipse에서 빌드를 하여 War 파일과 배포 폴더를 생성한다. 보통은 Eclipse에서 Maven 을 이용하여 빌드를 하게 되므로 빌드 후에 해당 프로젝트의 Target 폴더를 확인하면 War 파일과 배포 폴더가 생성된 것을 확인할 수 있다. 배포는 War 파일이 아니라 배포 폴더 (test-apps) 를 이용하도록 한다.

배포 폴더를 복사하여 Tomcat 폴더의 "webapps" 밑에 넣도록 한다. (보통은 WebContent / Library / Classes 들을 배포하지만, Maven 빌드릉 통해서 해당 항목들이 모두 배포 폴더와 War에 포함되어 있으므로 폴더채로 복사를 하면 된다)

Context 설정 (server.xml 파일)

Tomcat 폴더 밑의 conf 폴더에 server.xml 파일이 존재한다. 이 파일에 Tomcat 이 구동되었을 때 사용할 어플리케이션 Context 를 설정해 주어야 한다. server.xml  파일을 열고 "<Host>...</Host>" 요소를 찾아서 아래와 같이 Context 정보를 바로 위쪽에 설정하도록 한다. (이미 Eclipse에서 테스트가 된 상태라면 Workspace 의 Servers 폴더에 존재하는 server.xml 에서 내용을 복사해서 사용하면 된다)

<Context docBase="프로젝트명(test-apps)" path="/" reloadable="true" source="org.eclipse.jst.jee.server:프로젝트명(test-apps)" />

위의 docBase 와 path 은 실제 Tomcat 의 webapps 폴더 밑의 ROOT 폴더등과 연동되어 처리되는 경로라고 생각하면 된다. 이 부분에 대해서는 많은 정보들이 정리되어 있기 때문에 찾아서 이해하기를 권장한다. 제대로 구성이 되었지만 실제 JSP 페이지 등에 접근할 수 없다면 거의 대부분은 docBase와 Path 가 맞지 않아서 발생한다.

Connector 설정 (server.xml 파일)

Tomcat 기본은 Connector 가 8080 포트를 바라보게 되어 있다. 실행하여 테스트 하는데 별다른 문제가 없다면 이 과정은 생략해도 된다. 그러나 테스트 대상 프로젝트는 80 포트에 SSL 을 이용하도록 구성하여야 하기 때문에 다음과 같이 Connector 를 조정해 주어야 한다. (이미 Eclipse에서 테스트가 된 상태라면 Workspace 의 Servers 폴더에 존재하는 server.xml 에서 내용을 복사해서 사용하면 된다)

...
<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="80" protocol="HTTP/1.1" redirectPort="8443" useBodyEncodingForURI="true"/>
...
<Connector SSLEnabled="true" URIEncoding="utf-8" clientAuth="false" keystoreFile="SSL 키 파일 경로" keystorePass="Key Store 비밀번호" keystoreType="pkcs12" maxThreads="150" port="8443" protocol="HTTP/1.1" scheme="https" secure="true" sslProtocol="TLS"/>
...
<Connector port="8010" protocol="AJP/1.3" redirectPort="8443"/>
...

상기와 같이 설정을 하고 Tomcat 을 재 실행하면 된다. 그러나 만일 SSL 관련하여 오류가 나타난다면 server.xml 파일에서 다음과 같이 SSLEngine Listener 부분을 주석으로 처리해 주면 된다.

<!--<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />-->

이렇게 해서 Eclipse 에서 배포를 수동으로 배포하는 것을 테스트 볼 수 있다.


Written by Morris (MSFL).

댓글
댓글쓰기 폼