【发布时间】:2019-01-24 07:21:10
【问题描述】:
在过去的几天里,我注意到一个奇怪的 Tomcat 行为:
当我更新远程Tomcat服务器目录下相关webapp文件夹中的JAR文件时,工作目录下Tomcat编译的嵌入式JSP文件对应的.class和.java文件没有更新。
因此我尝试停止 Tomcat,删除整个工作目录,然后重新启动它,但它仍然重新编译旧版本的 jsp 文件。
这很奇怪,因为 Tomcat 似乎将旧 jar 或 jsp 的缓存保存在某处,并使用该缓存重新编译 jsp,而不是使用 jar 中包含的最新版本webapp 文件夹。
我发现使其工作的唯一方法是将工作目录中的编译版本手动替换为在我的机器中本地生成的版本,但这是一种 hack,我需要了解它是如何工作的以及在哪里它保留对旧版本文件的引用。你有什么线索吗?
更新:我们尝试删除 work 和 webapp 文件夹内容并重新部署整个 .WAR 文件,但 Tomcat 仍将旧版本的已编译 .JSP 文件部署到工作目录,即使 webapp 文件夹中有已部署正确版本的 JSP。似乎 Tomcat 将缓存保存在工作目录之外的其他地方......
【问题讨论】:
-
你需要从 Tomcat 的 webapp 目录中清理你的应用程序
-
你的意思是我需要删除整个webapp子文件夹然后重新部署整个war?