이클립스에서 열심히 개발한 프로그램을 운영 서버의 WAS에 배포 해보았다.

 

기존에 운영 중이었던 서버에 신규 배포할 때는 단순히 파일 업로드 후 재시작 하면 됐는데

운영 서버 구축 후, 개발 소스를 최초 배포하려니 방법이 막막했다.

 

0. 첫 번째 시도 (잘못된 방법)


일단 Tomcat의 IndexRoot에 소스파일을 그대로 업로드 해봤다.

그리고 Tomcat 서버를 실행하니, ClassNotFoundException 이 떨어졌다.

-> 당연한 결과다. 

    Java build Path, 즉 Compile된 파일인 .class 파일들이 포함되지 않았기 때문이다.

java build path

 

위와 같은 삽질을 한 후, 내가 최초 배포에 성공한 방법을 정리한다.

 

 

내가 배포에 성공한 방법

   -프로젝트를 war 파일로 export 후, Tomcat에서 구동하여 소스 최초 배포

 

1. war 파일 생성


(1)프로젝트 파일을 war로 export한다.

   -프로젝트 [우클릭] - [Export]

 

(2)WAR file 선택

   -[Web] - [WAR file] -[Next]

 

(3)프로젝트 / 목적지 선택

   -Export 할 프로젝트 선택(first)

   -생성할 war 파일 경로 및 파일 명 입력 ( ~\first.war)

   -Target rutime에서 [Optimize for a specific server runtime] 체크

   -Finish

 

(4)war 파일이 생성됐다.

 

2. Tomcat 설정 변경


Tomcat 에서 WAR 파일을 인식할 수 있도록, server.xml 에 다음과 같은 설정을 추가한다.

 

<Host name="localhost"  appBase="/data/project" unpackWARs="true" autoDeploy="true">

   <Context path="" docBase="/data/project/????" reloadable="true">

      <Resource name="jdbc/????" auth="Container"
            type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
            url="jdbc:oracle:thin:@1.1.1.1:1521:????"
            username="????" password=????" maxTotal="20" maxIdle="10"
            maxWaitMillis="-1"/>

    </Context>

<Host>

 

위 설정이 완료되면 war 파일을 unpack할 수 있다.

 

3. WAR 파일 업로드 및 Tomcat 실행


1번에서 생성한 .war 파일을 project의 root 폴더 상위에 업로드한다.

예를 들어, Tomcat에서 지정한 root 폴더가 /data/project/first 면,

first.war 파일을 /data/project에 업로드한다.

 

이후, Tomcat을 startup 한다.

 

4. war 파일 및 ROOT 폴더 삭제


정상적으로 war파일이 unpack되면, 다음과 같은 형태의 폴더가 생긴다.

first  first.war   ROOT

또한, first 폴더 안에는 다음과 같은 파일들이 생긴다.

 

자세히 보면, classes 폴더가 자동으로 생성됐으며 컴파일된 파일들(.class)이 잘 들어가있음을 확인할 수 있다.

서비스 또한 정상적으로 실행이 됐다.

 

이제, 필요없는 first.war 와 ROOT 폴더를 삭제한다.

#rm -rf first.war

#rm -rf ROOT

 

내용 추가

Tomcat을 올렸을 때, /data/project 폴더에 ROOT 폴더가 생기지 않은 경우가 있었다.

이 때에는, war 파일을 tomcat 홈 디렉토리/webapps 폴더 안에 넣은 후 재시작하면, webapps 경로에 폴더가 생성된다.

그 폴더를 /data/project/ 폴더에 옮기면 된다.


 

-끝-

+ Recent posts