簡體   English   中英

耳中的罐子不引用Wildfly 8.1中其他包裝罐子中的類

[英]jars in ear do not reference classes in other packaged jars in Wildfly 8.1

我是Wildfly的新手,想將當前的JBoss 5.1服務器升級到Wildfly 8.1。 我有一個應用程序,其中包含1次戰爭和該戰爭的類路徑上的許多jar。 這只耳朵毫無問題地部署在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確實存在,但在castor-1.3.3-core.jar中。 為什么代碼不在核心jar文件而不是xml jar文件中查找?

我通過Wildfly得知類加載已經改變 有一個標題為“ EAR Class Loading”的小節。

但是,此耳朵中唯一的子部署是warFile.war。 除非我誤解文檔,否則其他人不會顯示為子部署。 它指出wars和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的依賴關系,但這導致了其他麻煩。 這導致所有其他jar都缺少對其他jar的依賴...我想,如果您明確聲明對一個jar的依賴,那么您必須對所有jar都這樣做嗎?

任何幫助深表感謝。 希望此應用程序在此新服務器上運行。 謝謝!

更新:
warFile.war在其MANIFEST.MF文件中定義了類路徑,所有這些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

您必須將非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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM