由于xfire-1.2.6依赖项wss4j-1.5.1和xmlsec 1.3.0,JBoss AS 7.1依赖项冲突
我正试图在JBoss AS 7.1上部署遗留代码,但由于wss4j和xmlsec的原因,我正在努力解决相互冲突的依赖关系 我创建了一个jboss-deployment-structure.xml由于xfire-1.2.6依赖项wss4j-1.5.1和xmlsec 1.3.0,JBoss AS 7.1依赖项冲突,jboss,jboss7.x,wss4j,xfire,xmlsec,Jboss,Jboss7.x,Wss4j,Xfire,Xmlsec,我正试图在JBoss AS 7.1上部署遗留代码,但由于wss4j和xmlsec的原因,我正在努力解决相互冲突的依赖关系 我创建了一个jboss-deployment-structure.xml <?xml version="1.0" encoding="UTF-8"?> <jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.1"> <deployment> <!-
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.1">
<deployment>
<!-- Exclusions allow you to prevent the server from automatically adding
some dependencies -->
<exclusions>
<module name="org.apache.log4j" />
<module name="org.jboss.logging" />
<module name="org.jboss.logging.jul-to-slf4j-stub" />
<module name="org.jboss.logmanager" />
<module name="org.jboss.logmanager.log4j" />
<module name="org.slf4j" />
<module name="javaee.api" />
<module name="org.apache.santuario.xmlsec" />
</exclusions>
<dependencies>
<module name="javaee.api">
<imports>
<exclude-set>
<path name="org/apache/xml/security/**" />
<path name="org/apache/ws/security/**" />
</exclude-set>
</imports>
</module>
</dependencies>
</deployment>
但这导致:
Caused by: java.lang.NoSuchMethodError: org.apache.xml.security.transforms.Transform.init()V
at org.apache.ws.security.WSSConfig.<init>(WSSConfig.java:81) [wss4j-1.5.1.jar:]
at org.apache.ws.security.WSSConfig.getNewInstance(WSSConfig.java:95) [wss4j-1.5.1.jar:]
at org.apache.ws.security.WSSConfig.<clinit>(WSSConfig.java:47) [wss4j-1.5.1.jar:]
at org.apache.ws.security.WSSecurityEngine.<clinit>(WSSecurityEngine.java:51) [wss4j-1.5.1.jar:]
at org.apache.ws.security.handler.WSHandler.<clinit>(WSHandler.java:62) [wss4j-1.5.1.jar:]
at com.realdolmen.forens2.service.kbo.impl.KBOConsultServiceImpl.signRequest(KBOConsultServiceI
Caused by: java.lang.NoSuchMethodError: org.apache.xml.security.keys.KeyInfo.init()V
at org.apache.xml.security.Init.init(Unknown Source) [xmlsec-1.3.0.jar:]
at org.apache.ws.security.WSSConfig.<init>(WSSConfig.java:72) [wss4j-1.5.1.jar:]
at org.apache.ws.security.WSSConfig.getNewInstance(WSSConfig.java:95) [wss4j-1.5.1.jar:]
原因:java.lang.NoSuchMethodError:org.apache.xml.security.transforms.Transform.init()V
在org.apache.ws.security.WSSConfig.(WSSConfig.java:81)[wss4j-1.5.1.jar:]
位于org.apache.ws.security.WSSConfig.getNewInstance(WSSConfig.java:95)[wss4j-1.5.1.jar:]
在org.apache.ws.security.WSSConfig.(WSSConfig.java:47)[wss4j-1.5.1.jar:]
在org.apache.ws.security.WSSecurityEngine.(WSSecurityEngine.java:51)[wss4j-1.5.1.jar:]
位于org.apache.ws.security.handler.WSHandler.(WSHandler.java:62)[wss4j-1.5.1.jar:]
在com.realdomen.forens2.service.kbo.impl.kboconsultserviceinpl.signRequest(KBOConsultServiceI
当我将路径名更改为:
<exclude-set>
<path name="org/apache/xml/security" />
<path name="org/apache/ws/security" />
</exclude-set>
其结果是:
Caused by: java.lang.NoSuchMethodError: org.apache.xml.security.transforms.Transform.init()V
at org.apache.ws.security.WSSConfig.<init>(WSSConfig.java:81) [wss4j-1.5.1.jar:]
at org.apache.ws.security.WSSConfig.getNewInstance(WSSConfig.java:95) [wss4j-1.5.1.jar:]
at org.apache.ws.security.WSSConfig.<clinit>(WSSConfig.java:47) [wss4j-1.5.1.jar:]
at org.apache.ws.security.WSSecurityEngine.<clinit>(WSSecurityEngine.java:51) [wss4j-1.5.1.jar:]
at org.apache.ws.security.handler.WSHandler.<clinit>(WSHandler.java:62) [wss4j-1.5.1.jar:]
at com.realdolmen.forens2.service.kbo.impl.KBOConsultServiceImpl.signRequest(KBOConsultServiceI
Caused by: java.lang.NoSuchMethodError: org.apache.xml.security.keys.KeyInfo.init()V
at org.apache.xml.security.Init.init(Unknown Source) [xmlsec-1.3.0.jar:]
at org.apache.ws.security.WSSConfig.<init>(WSSConfig.java:72) [wss4j-1.5.1.jar:]
at org.apache.ws.security.WSSConfig.getNewInstance(WSSConfig.java:95) [wss4j-1.5.1.jar:]
原因:java.lang.NoSuchMethodError:org.apache.xml.security.keys.KeyInfo.init()V
位于org.apache.xml.security.Init.Init(未知源)[xmlsec-1.3.0.jar:]
在org.apache.ws.security.WSSConfig.(WSSConfig.java:72)[wss4j-1.5.1.jar:]
位于org.apache.ws.security.WSSConfig.getNewInstance(WSSConfig.java:95)[wss4j-1.5.1.jar:]
真正让我抓狂的是stacktrace中出现了正确的版本。我已经用CXF重写了旧代码。我还收到了针对相同问题的回复: