Tomcat을 기동하였고 프로세스(java)도 살아있는데 접속되지 않는 경우 그 원인은 매우 다양할 터이나, 이번에 언급할 한 사례는 꽤 일반적이지는 않습니다.

기동은 잘 되었습니다. catalina 로그도 증명합니다. 

Feb 05, 2014 5:46:26 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-apr-8080"]
Feb 05, 2014 5:46:26 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-apr-8009"]
Feb 05, 2014 5:46:26 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 25881 ms

 

그런데 몇 분 후 request를 날렸는데 브라우저에 전혀 응답이 없습니다. 404도 500도 503도 돌아오지 않고 브라우저는 아주 오랜 시간 계속 요청 중일 뿐이었습니다. 

그래서 catalina 로그를 확인해 보니, 정상 기동된 몇 분 후 부터 이상한 로그들이 있습니다.

Feb 05, 2014 5:54:07 PM org.apache.catalina.startup.HostConfig undeploy

이외에도 있습니다.

Exception in thread "http-apr-8080-exec-1" java.lang.InternalError
......
Caused by: java.io.FileNotFoundException: /u01/java/java7_51/jre/lib/charsets.jar

등등.

 

Java 는 /u01/java/... 에, Tomcat 은 /u01/tomcat/... 에 설치되어 있었고 Tomcat 은 tomcat 계정으로 기동되어 있었는데, 알고 보니 root owner에 755 권한으로 되어 있던 /u01이 644 권한으로 변경되면서, tomcat 계정이 갑자기 /u01에 진입하지 못하게 되는 문제가 생겼던 것이었습니다.

java.io.FileNotFoundException이 하나의 단서가 되었고 실제 tomcat 계정으로 들어갔을 때 갑자기 홈디렉토리(/u01/tomcat) 로 진입하지 못하는 상황을 통해 원인을 찾게 되었죠.