我是Wildfly的新手,想要将我们当前的JBoss 5.1服务器升级到Wildfly 8.1。我有一个包含1个战争和许多罐子的应用程序,它们位于该战争的类路径上。这个耳朵在JBoss 5.1上部署没有问题,但在Wildfly 8.1上我得到了LinkageErrors。
2014-10-09 16:08:12,425 WARN [org.jboss.modules] (MSC service thread 1-16) Failed to define class org.castor.xml.XMLProperties in Module "deployment.iffc.ear.castor-1.3.3-xml.jar:main" from Service Module Loader: java.lang.LinkageError: Failed to link org/castor/xml/XMLProperties (Module "deployment.iffc.ear.castor-1.3.3-xml.jar:main" from Service Module Loader)
...
Caused by: java.lang.ClassNotFoundException: org.castor.core.util.AbstractProperties from [Module "deployment.iffc.ear.castor-1.3.3-xml.jar:main" from Service Module Loader]
应用程序使用castor 1.3.3,并且在战争的类路径中包括:castor-1.3.3-core.jar和castor-1.3.3-xml.jar。
耳朵的目录结构如下:
ear
|---METAINF
|---castor-1.3.3-core.jar
|---castor-1.3.3-xml.jar
|---many other jars
|---warFile.war
指向org.castor.core.util.AbstractProperties的ClassNotFoundException是DOES EXIST但在castor-1.3.3-core.jar中。为什么代码不会在核心jar文件而不是xml jar文件中查找?
我用Wildfly that the classloading has changed学到了。有一节标题为“EAR Class Loading”。
但是,这个耳中唯一的子部署就是warFile.war。除非我解释文档错误,否则其他人不会显示为子部署。它声明战争和EJB jar是子部署,我没有EJB jar。在任何情况下,我都尝试通过在耳朵的METAINF目录中创建一个jboss-deployment-structure.xml文件,明确地将ear-subdeployments-isolated设置为false。那没有做任何事情。
我还明确修改了castor-1.3.3-xml.jar的清单文件,使其依赖于castor-1.3.3-core.xml,但这导致了另一个混乱。这导致所有其他罐子都缺少对其他罐子的依赖...我想如果你明确说明对一个罐子的依赖,你必须对所有罐子做这个吗?
非常感谢任何帮助。想在这台新服务器上运行此应用程序。谢谢!
更新
warFile.war在其MANIFEST.MF文件中定义了Class-Path,所有这些jar都位于耳根级别。
添加了war模块的类路径:
Class-Path: axis-1.3.jar castor-1.3.1-core.jar castor-1.3.1-xml.jar co
mmons-jxpath-1.2.jar commons-lang-2.0.jar commons-logging.jar commons
-pool-1.3.jar log4j-1.2.14.jar gson-2.2.4.jar activation.jar axiom-ap
i.jar axiom-impl.jar axis2-adb.jar axis2-kernel.jar backport-util-con
current.jar commons-codec.jar commons-discovery.jar commons-fileuploa
d.jar commons-httpclient.jar commons-io.jar geronimo-strax-api_1.0_sp
ec.jar neethi.jar qxpsm-webservicestubs-10.1.jar wsdl4j.jar wstx-asl.
jar XmlSchema.jar
答案 0 :(得分:1)
您必须将非ejb或war模块放入ear文件中的lib文件夹
ear
|---lib
| |---castor-1.3.3-core.jar
| |---castor-1.3.3-xml.jar
| |---non ejb jars
|
|-- warFile.war
|-- ejbFile.jar