Tomcat 从临时目录而不是 webapps 目录提供页面

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")临时目录中的 WEB-INF 目录。

我假设问题出在某个地方的某些上下文配置上,但我不确定在哪里设置它,因为我过去没有设置过它。

我怎样才能阻止应用程序从临时目录而不是 webapps 目录提供服务?

答案1

事实证明这是我修复错误后产生的副作用:

${CATLINA_HOME}/conf/server.xmlantiResourceLocking="true"元素中存在<Context>。这会导致从临时目录提供 Web 应用程序的多个副本。

相关内容