본문 바로가기
오픈소스/Tomcat

[Tomcat] Unable to create the file META-INF/war-tracker

by sangyeon 2021. 11. 30.
728x90

톰캣 어플리케이션 배포시 아래와 같은 에러 메세지 발생

30-Nov-2021 10:30:19.451 SEVERE [main] org.apache.catalina.startup.ContextConfig.beforeStart Exception fixing docBase for context [/sample]
java.io.IOException: Unable to create the file [/apache/tomcat_9.0.21/servers/testM1/webapps/sample/META-INF/war-tracker]
at org.apache.catalina.startup.ExpandWar.expand(ExpandWar.java:180)
at org.apache.catalina.startup.ContextConfig.fixDocBase(ContextConfig.java:615)
at org.apache.catalina.startup.ContextConfig.beforeStart(ContextConfig.java:748)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:303)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:182)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:717)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:978)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1849)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)

톰캣 문서를 보면, 톰캣이 war 파일을 확장하면, 톰캣이 실행 중이 아닐 때 war 파일의 변경을 감지하기 위해 [/META-INF/war-tracker] 파일을 추가한다.

해당 이슈는 수동으로 war 파일을 META-INF/war-tracker 파일을 포함시키고 pack할 경우 발생한다. 

배포중에 tomcat은 변경 사항 감지를 위해 해당 파일(war-tracker)을 생성하려고 하지만 이미 파일이 존재하면 tomcat은 파일을 만들 수 없다며 위의 Exception을 발생시킨다.

 

솔루션

Remove the file "META-INF/war-tracker" from your war-file before deployment and you're all set.
> war-tracker 파일을 삭제하고 다시 war를 pack한다.

728x90