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

Ben*_*n J 22 java eclipse tomcat m2eclipse classnotfoundexception

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

eclipse
    project a
    project b
Run Code Online (Sandbox Code Playgroud)

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

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

我希望不必再次重新打开,然后每当我对其进行更改时关闭项目A(这在此阶段经常发生).

我已经尝试将Project A添加到Project B的Build Path中,但是这似乎并没有成功.同样,它只有在我在eclipse中关闭项目时才有效,所以它被视为普通的maven依赖.

仅供参考我正在使用Helios版Eclipse.项目B是一个Spring项目,所以Tomcat在导入所有bean等时自然会失败.

有没有人有什么建议?非常感谢.

Jal*_*kin 76

你需要做的是:

  1. 在Eclipse中,转到Window> Show View> Servers>并打开名为Servers的选项卡
  2. 在"服务器"中,双击所需的服务器
  3. 此操作应在TAB中打开一个名为Overview的窗口,其中包含您选择的服务器
  4. 在此窗口中选择:打开启动配置,然后单击链接.
  5. 在"编辑配置"窗口中,选择名为Classpath的选项卡
  6. 在ClassPath文本框中,选择行:用户条目
  7. 现在按下右侧标题为"添加项目"的按钮
  8. 在生成的"项目选择"窗口中,选择希望服务器通过单击查找的外部项目.
  9. 在处理堆栈时,单击应用然后单击确定关闭这些窗口
  10. 在Overview窗口中重新启动服务器

你应该准备好了.它实际上只是一个2分钟的运动.祝好运


小智 33

如果您转到项目属性,选择"部署程序集"项,单击"添加..."并选择"项目",您可以添加依赖项目,问题应该解决.

  • 这应该标记为正确的答案 (3认同)
  • Jalkin的运行配置解决方案也有效,但这看起来更清晰,谢谢. (2认同)
  • 未来的读者,如果这个修复不适合你,请不要疯狂.它对我也不起作用.:-( (2认同)

rsp*_*rsp 5

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


Yuv*_*han 5

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

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

  • 这也有效(只是测试过它).因为"项目b"现在取决于你的仓库中的工件,所以它的缺点是要求你每次在某个东西发生变化时在"项目a"上运行`mvn install`. (3认同)