[tomcat]리눅스 환경에서 war배포 후 404에러 뜨는 경우

2020. 9. 7. 15:00 Server, WAS/Tomcat

1. 상황

AWS EC2 Ubuntu를 웹서버 환경 셋팅을 하는 중 tomcat을 깔고 jenkins.war 파일을 배포했다.

이상하게 계속 404(찾을 수 없는 페이지) 에러가 나왔고

아래와 같은 로그를 확인 했다.


hudson.util.NoHomeDir

        at hudson.WebAppMain.contextInitialized(WebAppMain.java:126)

        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4779)

        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5273)

        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)

        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1566)


 at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1556)

        at java.util.concurrent.FutureTask.run(FutureTask.java:262)

        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

        at java.lang.Thread.run(Thread.java:745)


사실 이 문제로 몇일 검색도하고 이것 저것 설정도 변경해 봤지만 되지 않았고 

로그를 먼저 봤어야 하는데 이제야 로그를 봤다.

이 문제는 jenkins뿐만 아니라 war파일로 배포되는 모든 프로젝트가 문제가 있었을 것이다.


2. 문제

리눅스 서버에 tomcat 접근 권한이 없기 때문이다.

3. 해결

$ sudo chown -R tomcat7:tomcat7 /var/lib/tomcat7/

$ sudo chown -R tomcat7:tomcat7 /etc/tomcat7/

$ sudo chown -R tomcat7:tomcat7 /usr/share/tomcat7/

$ sudo service tomcat7 restart


위 해결 방법은 리눅스 서버 상황마다 틀릴 수 있다. 

tomcat버전이 틀릴 수도있고 tomcat이 service에 등록되어 있지 않을 수도있다.

그렇기 때문에 자신의 환경에 맞게 권한을 부여하면 된다.

4. 참고

http://stackoverflow.com/questions/21274401/cant-get-jenkins-to-start-using-tomcat

출처 : https://blog.woniper.net/197?category=537962