2014년 1월 29일 수요일

tomcat 권한 문제로 인한 에러

만약 아래와 같은 에러가 나는데 도저히 모르겠다면 tomcat 디렉토리 권한을 의심해 본다.
tomcat을 사용하던 유저 권한이 아닌 다른 유저 권한(보통 root)으로 tomcat을 구동한 적이 있다면 기존 war파일이 풀린 위치의 권한이 변경된다. (war를 안쓰면 생기지 않는 문제.)
실수로 root권한으로 tomcat을 실행한 적이있다면 war파일을 풀지 못해서 아래와 같은 로그를 확인할 수 있다. 하지만 권한 문제라고는 나오지 않으므로 참 어려운 문제다. ㅠㅠ

...
SEVERE: Error deploying configuration descriptor XXXXXXX.xml
...
SEVERE: ContainerBase.addChild: start:
org.apache.catalina.LifecycleException: start:
...
Caused by: java.io.IOException: Failed to copy resources
        at org.apache.catalina.loader.WebappLoader.setRepositories(WebappLoader.java:892)
        at org.apache.catalina.loader.WebappLoader.startInternal(WebappLoader.java:603)
...

해결방법:
root 또는 해당 권한으로 chown을 사용해 tomcat 디렉토리 전체 권한을 변경해 준다.
(CATALINA_HOME은 tomcat 위치)

>sudo chown tomcat_user:tomcat_user -R $CATALINA_HOME

또는

>su
password:******
>chown tomcat_user:tomcat_user -R $CATALINA_HOME

파일을 풀지 못해서 생기는 문제이므로 다른 상황에서도 같은 에러가 발생될 수 있다.

1. 다른 이유로 권한이 변경되었을 경우
2. 디스크가 가득 찼을 경우 (df 명령으로 확인한다.)
3. 기타 등등등

댓글 없음:

FIX :: ssh 접속이 느리고, /var/log/messages에 systemd-logind.service failed. 메시지가 남을 때

ssh 접속이 느릴 때가 있습니다. 보통은DNS가 제대로 설정되지 않았는데 /etc/ssh/sshd_config에 UseDNS가 yes로 되어 있을 때 발생합니다. 위와 같을 경우 /etc/ssh/sshd_config파일에서 아래와 같이 수정 후 ...