gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 10:12:25 25 4
gpt4 key购买 nike

在过去的几天里,我注意到了一个奇怪的 Tomcat 行为:

当我更新远程Tomcat服务器目录下相关webapp文件夹下的JAR文件时,工作目录下Tomcat编译的嵌入式JSP文件对应的.class和.java文件没有更新。

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

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

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

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

最佳答案

在 Tomcat 的 webapp 文件夹中,您可能会找到一个文件 your_app.jar/war 和一个具有相同名称的文件夹,以便完成更新 tomcat 的缓存/安装你必须先删除这两个(及其相关的工作文件/文件夹),然后再次安装你的应用程序 jar/war。

我还会至少启动一次 tomcat 实例,而不会对应用程序进行任何跟踪,尽管这不是必需的。

关于java - 即使在删除工作目录后,Tomcat 也会重新编译旧版本的 JSP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51892169/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com