Tomcat
Tomcat 從臨時目錄而不是 webapps 目錄提供頁面
我在 Docker 容器中部署了一個 Apache Tomcat (Spring) 應用程序。主機是 Centos 7,容器是 Debian 9。
過去,我在 Docker 之外執行此應用程序時沒有任何問題。
我通過將所需文件複製到
${CATALINA_HOME}/webapps/appname/
. 應用程序載入正常,但是應用程序的副本會自動移動到${CATALINA_HOME}/temp/3-appname/
.我不認為這會是個問題,但注意到如果我在 中更改 JSP 頁面
${CATALINA_HOME}/webapps/appname/
,什麼也不會發生。如果我在臨時目錄中更改它,則會顯示更改。在我的 Spring 應用程序中,呼叫會
ServletContext.getRealPath("WEB-INF")
導致 temp 目錄中的 WEB-INF 目錄。我假設問題出在某個地方的一些上下文配置,但我不確定在哪裡設置它,因為我過去不必設置它。
如何阻止應用程序從臨時目錄而不是 webapps 目錄中提供服務?
事實證明這是我為修復錯誤所做的事情的副作用:
${CATLINA_HOME}/conf/server.xml
在元素中antiResourceLocking="true"
。<Context>
這會導致從 temp 目錄提供 webapp 的多個副本。