【问题标题】:Eclipse tomcat picking old filesEclipse tomcat 挑选旧文件
【发布时间】:2013-10-15 14:58:18
【问题描述】:

我尝试了所有想到的东西,但不知何故,事情没有解决。我使用 maven 创建了两个项目

  • 一个是网络应用程序
  • 其次是一个简单的java应用程序。

最初我使用 Maven 命令行(不是 eclipse)来构建我的 java 应用程序

mvn > install

并且正在使用 mvn >eclipse:cleanmvn > eclipse:eclipse 更新依赖项。一切正常。现在我想在 web 应用程序中调试我的 Java 应用程序(jar),所以我停止使用 maven 构建过程并将我的 java 应用程序添加到 @ 下的项目选项卡987654324@.

我尝试清理、构建我的 web 应用程序,但不知何故 Tomcat 正在挑选我的 java 应用程序的旧文件。 我什至清除了我的 Eclipse tomcat 工作目录并重新部署了应用程序,但没有用。

谁能指出我做错了什么。 我正在使用带有嵌入式 maven 插件的 Eclipse Kepler Release version

【问题讨论】:

    标签: eclipse maven m2eclipse


    【解决方案1】:

    如果有人遇到类似问题,我将分享我修复它所遵循的过程。首先,我必须说,在我的情况下,java 文件中的更改已正确更新(这意味着它已被编译并正确复制到部署路径)。但是,资源文件(例如属性文件)没有更新。

    通过以下过程,我设法正确更新了文件,并且可能会解决类似问题。

    • 禁用自动构建(取消选中项目 > 自动构建)。
    • 单击项目 > 清理并选择有问题的项目。保留检查以在清理后启动构建。
    • 刷新项目(单击项目根目录上的辅助按钮以显示上下文菜单并选择刷新)。
    • 执行 Maven 清理包(您可以创建 Maven 运行配置并在“目标”字段中键入不带引号的“清理包”)
    • 再次刷新项目。
    • 清理服务器。为此,请在违规服务器的上下文菜单(在“服务器”视图中)单击“清理”。

    这是一个非常繁琐的过程,但如果没有正确复制这些步骤,它可能无法正常工作。

    【讨论】:

      【解决方案2】:

      尝试以下方法:

      1. 删除托管您的 Web 应用程序的应用程序服务器上的文件。
      2. 检查您的 Pox.xml 和任何其他相关的配置文件,并确保您的构建设置正确。

      【讨论】:

        【解决方案3】:

        通常的罪魁祸首:

        • 有一个Tomcat进程仍在运行(重启失败,因为端口已经被占用)。确保 Tomcat 确实停止了。
        • Tomcat 正在从意外的地方加载类。检查您的 Tomcat 配置和部署描述符(context.xml 用于您的应用)。
        • 在部署到正在运行的服务器期间,Eclipse 无法替换所有类文件。这通常是由于类加载器泄漏。使用分析器找到这些。
        • 确保类路径上没有重复项。 maven-duplicate-finder 是你的朋友。

        [编辑] 尝试使用ClassLoader.getResources() (see this question) 加载违规类之一。这为您提供了 Tomcat 用来加载类的绝对路径。

        【讨论】:

        • 我已经测试了前 3 点,但没有成功,将尝试使用插件。我不知道服务器从哪里挑选这些文件 :(,甚至插件也没有指示任何重复文件。
        猜你喜欢
        • 2014-07-15
        • 2014-11-21
        • 2011-10-11
        • 1970-01-01
        • 2012-04-22
        • 1970-01-01
        • 1970-01-01
        • 2019-07-20
        • 2021-11-05
        相关资源
        最近更新 更多