Tomcat 对其他打开的 eclipse 项目中的类抛出 ClassNotFound 异常

发布于 2024-10-31 10:59:10 字数 590 浏览 3 评论 0原文

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

eclipse
    project a
    project b

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

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

我不想每次对项目 A 进行更改时都必须重新打开然后关闭项目 A(在这个阶段这种情况很常见)。

我尝试将项目 A 添加到项目 B 的构建路径中,但这似乎并没有解决问题。同样,只有当我在 Eclipse 中关闭项目时它才有效,因此它被视为正常的 Maven 依赖项。

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

有人有什么建议吗?多谢。

I have an eclipse project structure that looks something like this:

eclipse
    project a
    project b

All of these projects are Maven projects. Project B is an Eclipse WTP project and contains Project A as a dependency. I'm using the m2eclipse plugin.

When I deploy Project B to Tomcat (all from within Eclipse) it always throws errors saying that it can't find classes from Project A. The only way I can resolve this is to close Project A in Eclipse and do a mvn install command, so at this point Project A is treated like any other dependency.

I would like to not have to keep reopening and then closing Project A every time I make changes to it (which is pretty frequently at this stage).

I have tried adding Project A to Project B's Build Path, however that doesn't seem to do the trick. Again, it only works if I close the project in eclipse so it's treated like a normal maven dependency.

FYI I'm using the Helios version of Eclipse. Project B is a Spring project, so naturally Tomcat falls over when it imports all the beans etc.

Does anyone have any suggestions? Thanks a lot.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

肤浅与狂妄 2024-11-07 10:59:10

您需要做的是:

  1. 在 Eclipse 中转到 Window >显示视图>服务器>并打开名为“服务器”的选项卡
  2. 在“服务器”中,双击所需的服务器
  3. 此操作应打开一个标题为“概述”的窗口,其中选项卡中包含您选择的服务器
  4. 在此窗口中选择:“打开启动配置”,然后单击链接。
  5. 在“编辑配置”窗口中,选择名为“类路径”的选项卡
  6. 在“类路径”文本框中,选择行:“用户条目”
  7. 现在,按下右侧标题为“添加项目”的按钮
  8. 在出现的“项目选择”窗口中,选择您希望服务器通过以下方式查找的外部项目:点击。
  9. 在处理堆栈时,通过单击“应用”关闭这些窗口,然后根据需要单击“确定”。
  10. 在“概述”窗口中重新启动服务器

您应该已准备就绪。实际上只需2分钟的练习。祝你好运

What you need to do is this:

  1. In Eclipse go to Window > Show View > Servers > and open tab called Servers
  2. In Servers, double click the server you want
  3. This action should open a window entitled Overview, with your selected Server in the TAB
  4. In this window select: Open launch configuration, and click the link.
  5. In the Edit Configuration window, select the tab called Classpath
  6. In the ClassPath textbox, select the line: User Entries
  7. Now push the button on the right entitled: Add Projects
  8. In the resulting Project Selection window select the external project you want the server to find via click.
  9. Close these windows by clicking Apply then OK as appropriate as you work up the stack
  10. Restart your server in the Overview window

You should be ready to go. It's actually only a 2 minute exercise. Good luck

空心↖ 2024-11-07 10:59:10

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

If you go to the project properties, pick the item "Deployment Assembly", click "Add..." and choose "Project", you can add the dependent project and the issue should be solved.

吃颗糖壮壮胆 2024-11-07 10:59:10

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

The reason that tomcat cannot find your classes is that the project dependency in eclipse is not seen by tomcat. To resolve the issue you can add the bin folder of project a to the tomcat classpath of the app running from project b.

幽梦紫曦~ 2024-11-07 10:59:10

右键单击添加到容器服务器的Web项目,选择Maven,然后选择禁用工作区解析。然后,您的依赖项项目将开始像任何其他依赖项一样显示为 jar。

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

Right click on the web project which is added to container server and select Maven and then select Disable Workspace Resolution. Then your dependency project will start appearing as a jar like any other dependencies.

Right Click on the WebProject --> Maven --> Disable Workspace Resolution.

冷月断魂刀 2024-11-07 10:59:10

您安装了了解 WTP 的 m2eclipse 扩展吗?如果没有它,m2e 将无法在 WTP 项目中正常工作。请参阅:

https://docs.sonatype.org/display/M2ECLIPSE/WTP+迷你+操作方法

Have you installed the m2eclipse extension that know about WTP? Without it m2e will not work correctly for WTP projects. See this:

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

阳光的暖冬 2024-11-07 10:59:10

简单的方法:

运行 ->运行配置...->类路径

Simple way :

Run -> Run Configurations... -> Classpath

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文