我使用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。因此,添加项目会让其他东西变得混乱,我不知道如何解决这个问题。
有什么想法吗?
编辑:服务器模块概述截图
答案 0 :(得分:1)
PortalCommon不能是一个web项目,它必须只是java项目 将PortalCommon添加到PortalLogin"构建路径"和"部署Assesmbly"
然后是Tomcat> Clean。