특별히 서비스에는 영향이 없지만, 재시작을 할 때마다 이런 로그를 발생할 수 있다.

2011. 4. 7 오후 4:21:08 org.apache.catalina.startup.HostConfig deployDescriptor

정보 : Deploying configuration descriptor manager.xml

2011. 4. 7 오후 4:21:08 org.apache.catalina.core.StandardContext resourcesStart

정보 : Error starting static Resources

java.lang.IllegalArgumentException: Document base /home1/irteam/apps/tomcat/webapps/manager does not exist or is not a readable directory

        at org.apache.naming.resources.FileDirContext.setDocBase(FileDirContext.java:142)

        at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4319)

        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4488)

        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)

        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)

        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)

        at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:675)

        at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:601)

        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)

        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1315)

        at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)

        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)

        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1061)

        at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)

        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)

        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)

        at org.apache.catalina.core.StandardService.start(StandardService.java:525)

        at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)

        at org.apache.catalina.startup.Catalina.start(Catalina.java:595)

        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

        at java.lang.reflect.Method.invoke(Method.java:597)

        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)

        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)

원인은 webapps 디렉토리를 지우기 전에 한번이라도 재시작을 했을 때, 톰캣 서버 내부에서는 conf/Catalina 디렉토리 밑에 다음과 같은 디렉토리를 만들어 캐쉬합니다. 

conf/Catalina/localhost/manager.xml

conf/Catalina/localhost/host-manager.xml

conf/Catalina/dev-service.google.com/host-manager.xml

conf/Catalina/dev-service.google.com/manager.xml

 캐쉬된 파일은 따로 수정하지 않으면 계속 남아있게 되면서 계속 Exception을 발생할 수 있다. 아래 파일들을 지우면, 다시는 exception이 발생되지 않는다.

Tomcat에서 webapps 디렉토리보다 conf/Catalina를 먼저 읽기 때문에 이런 일이 발생된다. 따라서, Tomcat 서버를 설치 할 때부터 톰캣 설치디렉토리의 webapps 디렉토리를 삭제하면, 이런 일은 발생되지 않는다.

Posted by '김용환'
,