민서네집

eclipse에서 Web Application 이 시작하지 못하는 이유 본문

Java

eclipse에서 Web Application 이 시작하지 못하는 이유

브라이언7 2013. 7. 26. 00:51

< eclipse에서 Web Application 이 시작하지 못하는 경우 >

Tomcat 서버는 정상적으로 실행되었다고 Console 창에 메시지가 나오고,

이클립스의 Console 창에는 에러가 하나도 없는데,

웹 어플리케이션이 시작 못하는 황당한 경우가 있었다.


WebContent 디렉터리에 있는 index.jsp 페이지도 웹 브라우저에서 불러올수 없었다.




원인은 간단했다.

하필이면 Web Project 의 Context Root 가 ROOT 로 되어 있었기 때문...

Context Root 가 ROO 나 ROOT1 으로 되어 있다면 웹어플리케이션은 잘 실행된다.


다른 서버는 잘 모르겠지만 적어도 Tomcat 서버에서는 ROOT 라는 이름은 특별한 용도로 사용된다.

Tomcat 서버는 Context Root 가 '/' 인 경우 ROOT 라는 디렉터리 밑에 있는 파일들을 서비스 한다.



해결 방법은? 

Context Root 를 ROOT 에서 당장 다른 것으로 변경하자.


[2013-08-14]



Context root 를 ROOT 로 했는데도, 잘 실행된다.


STS 3.3.0.RELEASE 를 사용하고 있는데, STS 가 버전이 올라가면서 되는 것인지 아니면 내가 JDK 6 에서 JDK 7 로 올려서 그런것인지 잘 모르겠는데, 하옇든 지금은 Context root 를 ROOT 로 했는데도, 잘 실행된다.


http://localhost:8080/ROOT/ 가 아닌 http://localhost:8080/ 으로 접근해야만 한다.


참고로 이클립스에서 .settings 디렉터리 밑에 org.eclipse.wst.common.component 파일의 내용은 다음과 같다.


<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">

    <wb-module deploy-name="sample-project">

        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>

        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>

        <wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>

        <wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>

        <property name="java-output-path" value="/sample-project/target/classes"/>

        <property name="context-root" value="ROOT"/>

    </wb-module>

</project-modules>


[ 2013-08-26]


Context root 가 ROOT 인 상태에서 tomcat 을 실행시키는 방법 -


이클립스의 Servers 뷰에서 Tomcat v7.0 Server at localhost 을 더블클릭.



하단의 두번째 탭 Modules 를 선택해서 마우스로 프로젝트(Module)을 선택하고 Edit 버튼을 클릭해서 Path 를 /ROOT 에서 / 으로 수정한다.




Maven 에서 pom.xml 파일에서  <build><finalName>ROOT</finalName></build> 로 해주어야지 ROOT.war 파일로 만들어지고, Tomcat 서버의 webapps 디렉터리에 놓으면 ROOT 디렉터리로 풀리면서 Context root 가 / 로 웹서비스가 된다.


pom.xml 이 이런 상태에서 이클립스에서 Maven > Update Project 를 하면 Context root 가 ROOT 로 된다.


이런 경우 위처럼 Edit Web Module 에서 Path 를 / 으로 변경해주어야지만 이클립스의 Servers 탭에서 Run 했을때 Context root 가 / 이 되면서 웹어플리케이션을 실행할 수 있다.


Comments