【问题标题】:Linked projects/folders in Eclipse don't deploy in tomcatEclipse 中的链接项目/文件夹不在 tomcat 中部署
【发布时间】:2014-12-05 12:22:59
【问题描述】:

我使用 Eclipse 创建了两个动态 Web 项目。一个用于构建/部署,另一个是一个虚拟项目,其中包含要包含在其他项目中的类、资源和 jar。

我的项目布局是这样的:

Project PortalLogin

java sources: src folder + resources folder
build
target
common
WebContent/WEB-INF: lib folder + classes folder (actually empty, it is just a linked resource to the lib and classes folder of the common project)


Project PortalCommon

java sources: src folder + resources folder
build
target
WebContent/WEB-INF: lib folder + classes folder

项目链接如下:

这也是 PortalLogin 项目布局中出现“common”文件夹的原因。

但是,当我将 PortalLogin 项目部署到 tomcat 7.0 时,容器抱怨他找不到通用项目的源文件,并在他需要的第一个类中抛出 ClassNotFoundException:

引起:java.lang.ClassNotFoundException: company.acme.portal.common.webapp.UndefinedActionHandler 在 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714) 在 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559) 在 com.opensymphony.xwork2.util.ClassLoaderUtil.loadClass(ClassLoaderUtil.java:152) 在 com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:216) ... 19 更多

我查看了我的 tomcat 服务器配置,发现在“源”选项卡中,两个项目都正确包含:

claspath 没有显示任何可疑内容?

作为最后的检查,我查看了我的文件系统,以查看 Common 项目是否实际上已将 .java 源文件构建到 .classes 文件中,并且它们正确存在。

我的第一次尝试是按照in this question 的描述使用部署程序集,但是当我点击“java build entry”时,我只看到一个空列表,我无法点击那里的任何内容。

我的第二次尝试也是使用部署程序集添加公共项目和/或公共项目的源文件夹,如下所示。这并没有解决问题。

最后我尝试将项目添加到 tomcat 服务器配置中的类路径中,如 in this question 所述。这确实有效......但现在我的tomcat突然在web-inf/lib文件夹中找不到任何jar,在program files/apache/tomcat 7.0/lib中找不到任何jar。所以在那里添加项目会搞砸其他事情,我不知道如何解决这个问题。

有什么想法吗?

编辑:服务器模块概述截图

【问题讨论】:

  • 你能从 Eclipse 的服务器视图中发送一张图片吗?用 tomcat 展开
  • 我在服务器视图中看不到标签为“Tomcat”的选项卡或按钮。我添加了概述的屏幕截图。你能从中得到任何信息吗?
  • Press Ctrl + 3 Write "Servers" - 然后会激活一个视图,这是重要的视图,或者是您刚刚发送的屏幕截图中的模块部分。您应该能够将两个项目都添加到模块中。
  • 好的,我添加了。首先它只是模块“PortalLogin”,但后来我还添加了模块“PortalCommon”以查看它是否有任何作用。两种设置都给出了相同的类未找到异常。
  • 从类路径 - tomcat 中删除 Project PortalCommon。然后进入项目 PotralLogin 属性 - java 构建路径 -> 项目,添加项目 PortalCommon。构建干净,停止 tomcat 并启动它

标签: java eclipse tomcat deployment


【解决方案1】:

PortalCommon 不能是 web 项目,只能是 java 项目。
将 PortalCommon 添加到 PortalLogin 的“构建路径”和“部署组件”

然后Tomcat>清理。

【讨论】:

  • 我创建了一个名为“PortalCommon2”的普通 java 项目,其中包含 PortalCommon 的内容。当我尝试在 PortalCommon2 的项目属性中进行部署程序集时,它不再是一个选项,因为它不是一个 Web 项目?你确定你的答案是正确的?
  • 好吧,除了“打开门户通用部署程序集”这一行之外,我做了你所说的一切,但它仍然有效!感谢您提供干净的解决方案
  • PortalCommon2 的“部署程序集”选项将在将 PortalCommon2 添加到 PortalLogin 的“部署程序集”时可用。 PortalCommon2 的“部署程序集”将允许将 PortalCommon2 的构建路径打包到 PortalCommon2.jar 中。所以我应该交换答案的第 2 行和第 3 行。
猜你喜欢
  • 2023-04-08
  • 1970-01-01
  • 2015-10-30
  • 1970-01-01
  • 1970-01-01
  • 2012-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多