2014-12-05 58 views
1

我使用Eclipse创建两个动态Web项目。一个是为了构建/部署,另一个是一个虚拟项目,其中包含将包含在其他项目中的类,资源和罐子。Eclipse中的链接项目/文件夹不会在tomcat中部署

我的项目布局是这样的:

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 

这些项目连接在一起如下:

enter image description here

这也是为什么“常用”文件夹中存在的原因PortalLogin项目的布局。

然而,当我部署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) at com.opensymphony.xwork2.util.ClassLoaderUtil.loadClass(ClassLoaderUtil.java:152) 在com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:216) ...... 19多个

我看着我的Tomcat服务器的配置和看到,在“源”选项卡两个项目都适当地包括:

enter image description here

的claspath不显示任何可疑?

enter image description here

最后检查我看着我的文件系统,看看是否公共项目实际上已经修完了.java源文件到.classes文件,它们是正确的存在。

我的第一次尝试是使用部署程序集in this question,但是当我点击“java build entry”时,我只是看到一个空的列表,我不能点击任何东西。

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

enter image description here

最后我尝试添加该项目在Tomcat服务器配置描述in this question类路径。这可行...但现在突然我的tomcat无法在web-inf/lib文件夹中找到任何罐子,也没有在program files/apache/tomcat 7.0/lib中找到任何罐子。因此,在那里添加项目会弄乱一些其他的东西,我不知道如何解决这个问题。

enter image description here

有什么想法?

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

enter image description here

+0

你可以从eclipse中的Servers视图发送图片吗?扩展了tomcat – 2014-12-05 12:42:35

+0

我在服务器视图中看不到标签为“Tomcat”的选项卡或按钮。我添加了概览的屏幕截图。你能从中得到任何信息吗? – user1884155 2014-12-05 12:56:10

+0

按Ctrl + 3编写“服务器” - 然后视图将被激活,这是重要的视图,或模块部分从您刚刚发送的屏幕截图。您应该可以将模块添加到两个项目中。 – 2014-12-05 13:01:02

回答

1

PortalCommon不能是一个web项目,它必须是公正的Java项目。
将PortalCommon添加到PortalLogin的“Build Path”和“Deployment Assesmbly”

Then Tomcat> Clean。

+0

我做了一个名为“PortalCommon2”的正常java项目,它具有PortalCommon的内容。当我尝试在PortalCommon2的项目属性中部署程序集时,它不再是一个选项,因为它不是一个Web项目?你确定你的答案是正确的吗? – user1884155 2014-12-05 17:00:06

+0

好的我做了你所说的一切,除了“open portalCommon deployment assembly”这行,但它仍然工作!感谢您提供干净的解决方案 – user1884155 2014-12-05 17:20:12

+0

当PortalCommon2添加到PortalLogin的“部署程序集”时,PortalCommon2的“部署程序集”选项将可用。 PortalCommon2的“部署程序集”将允许将PortalCommon2的构建路径放入PortalCommon2.jar中。因此,我应该交换我的答案的第2和第3行。 – outdev 2014-12-05 17:54:11

相关问题