Tomcat为其他开放日食项目中的类抛出ClassNotFound异常

时间:2011-04-09 08:14:37

标签: java eclipse tomcat m2eclipse classnotfoundexception

我有一个看起来像这样的eclipse项目结构:

eclipse
    project a
    project b

所有这些项目都是Maven项目。项目B是Eclipse WTP项目,包含项目A作为依赖项。我正在使用m2eclipse插件。

当我将Project B部署到Tomcat(全部来自Eclipse中)时,它总是抛出错误,说它无法从Project A中找到类。我能解决这个问题的唯一方法是关闭项目在Eclipse中并执行 mvn install 命令,因此此时项目A被视为任何其他依赖项。

我希望不必再次重新打开,然后在每次对其进行更改时关闭项目A(这在此阶段非常频繁)。

我尝试将项目A添加到项目B的构建路径中,但这似乎并没有成功。同样,它只有在我在eclipse中关闭项目时才有效,所以它被视为普通的maven依赖。

仅供参考我使用的是Helios版本的Eclipse。项目B是一个Spring项目,因此当它导入所有bean等时,Tomcat自然会崩溃。

有没有人有任何建议?非常感谢。

6 个答案:

答案 0 :(得分:75)

您需要做的是:

  1. 在Eclipse中转到Window>显示视图>服务器>并打开名为Servers
  2. 的标签页
  3. 在“服务器”中,双击所需的服务器
  4. 此操作应打开一个名为Overview的窗口,其中包含您在TAB中选定的服务器
  5. 在此窗口中选择:打开启动配置,然后单击链接。
  6. 在“编辑配置”窗口中,选择名为Classpath
  7. 的选项卡
  8. 在ClassPath文本框中,选择以下行:用户条目
  9. 现在按下右侧标题为“添加项目”
  10. 的按钮
  11. 在生成的“项目选择”窗口中,选择您希望服务器通过单击找到的外部项目。
  12. 在处理堆栈时,单击“应用”,然后选择“确定”,关闭这些窗口
  13. 在“概述”窗口中重新启动服务器
  14. 你应该准备好了。它实际上只是一个2分钟的运动。祝你好运

答案 1 :(得分:32)

如果你去项目属性,选择项目“部署程序集”,单击“添加...”并选择“项目”,你可以添加依赖项目,问题应该解决。

答案 2 :(得分:5)

tomcat无法找到你的类的原因是tomcat没有看到eclipse中的项目依赖。要解决此问题,您可以将项目a的bin文件夹添加到从项目b运行的应用程序的tomcat类路径中。

答案 3 :(得分:5)

右键单击添加到容器服务器的Web项目,然后选择Maven,然后选择Disable Workspace Resolution。然后,您的依赖项目将开始像任何其他依赖项一样显示为jar。

  

右键单击WebProject - > Maven - >禁用工作区分辨率。

答案 4 :(得分:2)

您是否安装了了解WTP的m2eclipse扩展?如果没有它,m2e将无法正常用于WTP项目。见:

https://docs.sonatype.org/display/M2ECLIPSE/WTP+mini+howto

答案 5 :(得分:0)

简单方法:

Run -> Run Configurations... -> Classpath