Java Tomcat为其他打开的eclipse项目中的类抛出ClassNotFound异常
我的eclipse项目结构如下所示:Java Tomcat为其他打开的eclipse项目中的类抛出ClassNotFound异常,java,eclipse,tomcat,m2eclipse,classnotfoundexception,Java,Eclipse,Tomcat,M2eclipse,Classnotfoundexception,我的eclipse项目结构如下所示: eclipse project a project b 所有这些项目都是Maven项目。项目B是一个EclipseWTP项目,包含项目A作为依赖项。我正在使用m2eclipse插件 当我将项目B部署到Tomcat(全部来自Eclipse)时,它总是抛出错误,说它找不到项目A中的类。解决这一问题的唯一方法是在Eclipse中关闭项目A并执行mvn安装命令,因此在这一点上,项目A被视为与任何其他依赖项一样 我不希望每次对项目A进行更改时都必须重
eclipse
project a
project b
所有这些项目都是Maven项目。项目B是一个EclipseWTP项目,包含项目A作为依赖项。我正在使用m2eclipse插件
当我将项目B部署到Tomcat(全部来自Eclipse)时,它总是抛出错误,说它找不到项目A中的类。解决这一问题的唯一方法是在Eclipse中关闭项目A并执行mvn安装命令,因此在这一点上,项目A被视为与任何其他依赖项一样
我不希望每次对项目A进行更改时都必须重新打开然后关闭它(这在这个阶段非常频繁)
我已经尝试过将项目A添加到项目B的构建路径中,但是这似乎不起作用。同样,只有在eclipse中关闭项目,它才能工作,因此它被视为正常的maven依赖项
仅供参考,我使用的是太阳神版的Eclipse。项目B是一个Spring项目,所以Tomcat在导入所有bean时自然会失败
有人有什么建议吗?非常感谢。tomcat找不到您的类的原因是tomcat看不到eclipse中的项目依赖关系。要解决此问题,您可以将项目a的bin文件夹添加到从项目b运行的应用程序的tomcat类路径。您是否安装了了解WTP的m2eclipse扩展?如果没有它,m2e将无法在WTP项目中正常工作。见此:
如果您转到项目属性,选择项目“部署程序集”,单击“添加…”并选择“项目”,您可以添加依赖项目,问题应该得到解决。您需要做的是:
你应该准备好出发了。这实际上只是一个2分钟的练习。祝您好运右键单击添加到容器服务器的web项目,选择Maven,然后选择Disable Workspace Resolution。然后,您的依赖项项目将开始像任何其他依赖项一样显示为jar 右键单击WebProject-->Maven-->禁用工作区解析 简单方法:
Run->Run配置…->类路径
这正是我想要的。非常感谢。谢谢你,这太棒了。这很有效。我觉得做这件事有很多程序员的内疚感,但它确实有效。也许有一天m2e会自动处理项目依赖项的部署。最后,这个解决方案对我解决了maven依赖项的类似问题,非常感谢!这对我帮助很大!谢谢。Jalkin的运行配置解决方案也很有效,但这看起来更干净了,谢谢。未来的读者,如果这个修复方案不适用于您,请不要发疯。这对我也不管用-(3年多之后,这在Eclipse Luna中仍然是一个问题。奇怪的是,我过去在我的项目中添加了模块,但没有出现任何问题,但对于一些人来说,最后的模块添加没有起作用。我不得不使用add=>Folder,但它起到了同样的作用。谢谢!我想说这是我一直在寻找的解决方案。Web模块和EJB模块可以在Windows中部署。)ependency(没有EAR)。这也可以工作(刚刚测试过)。它的缺点是每次“项目a”发生变化时,都需要在“项目b”上运行mvn install
,因为“项目b”现在取决于您的repo中的工件。