【问题标题】:Tomcat 6.0.26 caching Java classesTomcat 6.0.26 缓存 Java 类
【发布时间】:2010-09-18 22:18:35
【问题描述】:

我突然面临一个奇怪的问题,我不知道为什么会发生这种情况。

我的基本设置是使用 maven(eclipse 插件 0.20)、Tomcat 6.0.26。

直到几天前,我才能够在调试模式下启动 tomcat,在调试时更改代码并进行测试。然后为 maven 运行 prepare-package,停止并启动 tomcat 以反映更改。

但是几天后,调试选项停止工作,并且 eclips 没有正确加载类中的更改。我最初认为这是一个调试问题,但是即使我停止了 tomcat,运行了一个准备包并启动了 tomcat,我的类更改也没有显示出来。

我通常在 eclipse 中保持自动构建,它将类文件写入目标/类,然后 maven 将其复制到 WEB-INF/类,tomcat 从中读取它。切换此选项有助于 prepare-package 仅在某些时候起作用。

我不确定这是否是我的 maven-plugin 或 tomcat 对类进行一些奇怪的缓存的问题。这些不是 servlet 或 JSP,而是普通的 java 类。

想知道是否有人看到这种问题,或者只是我的机器给我带来了麻烦

【问题讨论】:

  • 如何启动Tomcat?支付意愿?货物?对外?您使用的是工作区分辨率吗?
  • 我使用 catalina jpda start 命令从命令行启动 tomcat
  • 哦,您正在通过调试器使用热代码替换。所以这取决于类是否可以被替换,例如签名保持不变等。

标签: java eclipse maven-2 tomcat6


【解决方案1】:

您可以编写一个小型 Web 应用程序,将其从 eclipse 部署到 tomcat,对其进行调试,修改代码并查看其是否自动部署。如果可以,您可以尝试删除您的 eclipse 项目并重新导入和重建它

【讨论】:

    【解决方案2】:

    此问题已解决。我的应用程序有两个 jar(一些内容但只有不同的名称)具有相同的类(相同的包层次结构)和不同的版本。因此,当我尝试调试时,它选择的是较旧的。我删除了旧的jar,问题就解决了。

    谢谢

    【讨论】:

      猜你喜欢
      • 2011-03-20
      • 2013-01-05
      • 1970-01-01
      • 2013-08-16
      • 2021-11-03
      • 2011-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多