最近几天,我注意到了Tomcat的一种奇怪行为:
当我更新远程Tomcat服务器目录中相关webapp文件夹中的JAR文件时,Tomcat在工作目录中编译的嵌入式JSP文件的相应.class和.java文件不会更新。
因此,我试图停止Tomcat,删除整个工作目录,然后再次启动它,但是它仍然重新编译旧版本的jsp文件。
这很奇怪,好像Tomcat正在保留存储在某个位置的旧jar或jsp的缓存,并且它使用该缓存重新编译jsp而不是使用包含在jar中的最新版本。 webapp文件夹。
我发现使其工作的唯一方法是用我的计算机本地生成的版本手动替换工作目录中的编译版本,但这是一种破解,我需要了解它的工作原理以及在何处工作它保留了对旧版本文件的引用。你有什么线索吗?
更新:我们试图删除work和webapp文件夹中的内容并重新部署整个.WAR文件,但是Tomcat仍将旧版本的已编译.JSP文件部署到工作目录中,即使webapp文件夹中包含已部署了正确版本的JSP。似乎Tomcat在工作目录之外的其他地方保留了缓存...
答案 0 :(得分:1)
在Tomcat的webapp文件夹中,您可能会找到一个具有相同名称的文件 your_app.jar/war
和一个文件夹,以便完成续订tomcat的缓存/安装。必须先删除这两个文件(及其相关的工作文件/文件夹),然后再次安装应用程序jar / war。
我也至少要启动一次tomcat实例,而无需任何应用程序跟踪,尽管这不是必需的。