maven프로젝트 Run on Server로 tomcat 구동 방법 (두 번째 방법)

개발툴|2013. 2. 19. 13:33


예전에 이클립스에 내장되어 있는 tomcat을 이용하여 메이븐 프로젝트 구동하는 방법에 대해서 블로깅한 적이 있는데, 이 방법 외에 또 다른 방법이 있음을 최근에 알게 되었다.


maven프로젝트 Run on Server로 tomcat 구동 방법 (첫 번째 방법)


일단 메이븐 프로젝트를 생성한 후 Project Facets에서 Dynamic Web Module에 체크하여 웹 프로젝트로 만든다.

이후 다음과 같이 설정을 한 후 Servers 탭에 있는 tomcat을 구동하면 정상적으로 웹 애플리케이션을 띄울 수 있다.


웹 프로젝트 우 클릭 후 Properties 클릭

Libraries에 Maven Dependencies가 추가되어 있어야지만 자바 파일이 정상적으로 컴파일 된다.


빌드 패스에 src/main/java, src/main/resources, src/test/java, src/test/resources를 추가한다.

메이븐 프로젝트로 생성하였다면 기본적으로 추가되어 있을 것이다.


Deployment Assembly에 Maven Dependencies가 꼭 추가되어 있어야 tomcat 플러그인 가상 디렉토리에 jar파일들이 배포된다.


톰켓 플러그인 가상 배포 디렉토리 경로

D:\dev\workspace\project\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\springProject



위와 같이 설정 후 Servers 탭에 있는 tomcat을 기동하게 되면 아래와 같은 메세지를 만나게 된다.

INFO: validateJarFile(D:\workspace\project_test\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\Front\WEB-INF\lib\javax.servlet-api-3.0.1.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class


jar not loaded. 와 같은 에러가 발생되는 이유는 pom.xml에 servlet 관련 dependency가 추가되어 있어서 ${TOMCAT_HOME}/lib 디렉토리에 있는 servlet jar 파일과의 충돌로 인한 현상이다.

특이한 점은 이와 같이 충돌 메세지를 출력한 후 웹 애플리케이션이 중지되는 경우가 있는 반면에 오류 메세지는 출력되지만 웹 애플리케이션은 정상적으로 기동되는 경우가 있다는 것이다.


내 생각에 정상적으로 웹 애플리케이션이 동작하지 않는 경우는 pom.xml 에 정의되어 있는 dependency 라이브러리가 꼬여서 발생된 것으로 추측된다.


만약 위와 같이 정상적으로 웹 애플리케이션이 동작하지 않는 다면 pom.xml 파일에 정의되어 있는 dependency 라이브러리를 점검해 볼 필요가 있다. 특히 servlet 관련 라이브러리가 다른 라이브러리로 인한 의존성으로 추가되어 있는지를 확인해야 하며 만약 추가되어 있다면 exclusions을 사용하여 제외시키면 될 것이다.


댓글()