【问题标题】:Web project doesn't run on server if a dependent project is opened in eclipse如果在 eclipse 中打开依赖项目,Web 项目不会在服务器上运行
【发布时间】:2015-09-13 08:09:11
【问题描述】:

我正在使用 Eclipse 4.4.2MavenTomcat v7.0 开发一个 Web 应用程序。该应用程序由一个

  • AppSuite (<packaging>pom</packaging>)
  • AppModel<packaging>jar</packaging>,有一些自动生成的类)
  • AppUserInterface<packaging>war</packaging>,取决于 AppModel

AppUserInterfaceAppModelAppSuite 的模块。

我目前面临的问题是,如果我在 Eclipse 中打开了所有三个项目并尝试在服务器上运行 AppUserInterface,那么所有内容都会正确移动到 tomcat webapps 文件夹(AppUserInterface*.class 文件和包括 AppModel.jar 在内的所有库)但 tomcat 抛出异常

java.lang.NoClassDefFoundError: com/app/model/ClassName

但是,如果我在 Eclipse 中关闭项目 AppModel,当我在服务器上运行 AppUserInterface 时,一切都会正常运行。

我怀疑如果 AppUserInterface 应该与本地 AppModel 一起使用,eclipse 会变得混乱。

有什么想法解决这个错误,以便我可以同时打开所有三个项目并仍然运行 AppUserInterface


编辑:java.lang.NoClassDefFoundError: com/app/model/ClassName 类不是自动生成的类。

【问题讨论】:

  • 你在什么环境下工作?视窗?因为如果像你的 IDE 这样的进程有文件锁,移动一个目录在 Windows 上是行不通的。
  • Windows,我已经检查了所有文件都复制到webapps文件夹中,AppModel.jar也包含所有需要的*.class文件。
  • 如何创建自动生成的类?
  • 通过Maven的generate-sources阶段的maven插件pojobuilder-3.4.0AppModel.jar包含所有这些生成的类。我可能忘了提及,NoClassDefFoundError 不是生成的类之一。
  • 从 Eclipse 内部运行时,并非所有 Maven 阶段都会被调用。也许这有帮助:eclipse.org/m2e/documentation/m2e-execution-not-covered.html

标签: java eclipse maven tomcat


【解决方案1】:

添加了赏金,2分钟后找到了解决方案...

解决方案是这个主题Strange "java.lang.NoClassDefFoundError" in Eclipsermtheis的anwser,我直到现在才找到。一个简单的Project->Clean... 以某种方式解决了这个问题。

【讨论】:

    猜你喜欢
    • 2010-12-14
    • 1970-01-01
    • 2011-01-08
    • 1970-01-01
    • 2014-10-07
    • 2014-07-03
    • 2011-05-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多