Java Tomcat即使在删除工作目录后也会重新编译旧版本的JSP

Java Tomcat即使在删除工作目录后也会重新编译旧版本的JSP,java,jsp,tomcat,caching,Java,Jsp,Tomcat,Caching,在过去的几天里,我注意到一种奇怪的雄猫行为: 当我更新远程Tomcat服务器目录中相关webapp文件夹中的JAR文件时,Tomcat在工作目录中编译的嵌入式JSP文件的相应.class和.java文件不会更新 因此,我试图停止Tomcat,删除整个工作目录,然后再次启动它,但它仍然重新编译旧版本的jsp文件 这很奇怪,因为Tomcat似乎将旧jar或jsp的缓存保存在某处,并使用该缓存重新编译jsp,而不是使用webapp文件夹中包含的jar中的最新版本 我发现让它工作的唯一方法是手动将工作目

在过去的几天里,我注意到一种奇怪的雄猫行为:

当我更新远程Tomcat服务器目录中相关webapp文件夹中的JAR文件时,Tomcat在工作目录中编译的嵌入式JSP文件的相应.class和.java文件不会更新

因此,我试图停止Tomcat,删除整个工作目录,然后再次启动它,但它仍然重新编译旧版本的jsp文件

这很奇怪,因为Tomcat似乎将旧jar或jsp的缓存保存在某处,并使用该缓存重新编译jsp,而不是使用webapp文件夹中包含的jar中的最新版本

我发现让它工作的唯一方法是手动将工作目录中的编译版本替换为在我的机器中本地生成的版本,但这是一种黑客行为,我需要了解它是如何工作的,以及它在哪里保留对文件旧版本的引用。你有什么线索吗


更新:我们试图删除work和webapp文件夹内容并重新部署整个.WAR文件,但Tomcat仍然将编译的.JSP文件的旧版本部署到work目录中,即使在webapp文件夹中部署了正确版本的JSP。似乎Tomcat在工作目录之外的其他地方保留了一个缓存…

在Tomcat的webapp文件夹中,您可能会发现一个文件
您的_app.jar/war
和一个同名的文件夹,为了完成续订Tomcat的缓存/安装,您必须先删除这两个文件(及其相关的工作文件/文件夹),然后再次安装应用程序jar/war


我也会启动tomcat实例至少一次,但没有应用程序的任何痕迹,尽管它不是必需的。

您需要从tomcat的webapp目录中清理应用程序。您的意思是我需要删除整个webapp子文件夹,然后重新部署整个war吗?我们不使用war的自动提取,而是手动解压缩它问题是停止tomcat服务器、手动更新webapp文件夹中的jar、删除工作目录然后重新启动服务器不会更新原始问题(仅供参考)中JSP的编译