部署 war 时,没有任何问题。运行时,面临java.lang.LinkageError异常。
异常详情:
Failed to define class javax.wsdl.extensions.soap12.SOAP12HeaderFault in Module
"abc.war:main" from Service Module Loader: java.lang.LinkageError: loader
constraint violation: loader (instance of org/jboss/modules/ModuleClassLoader)
previously initiated loading for a different type with name
"javax/wsdl/extensions/soap12/SOAP12HeaderFault"
如何检查哪些 jar 存在冲突以及在哪个类加载器中?
堆栈:Jboss 6、Java 7
最佳答案
A WAR deployment is considered to be a single module in JBOSS 6. Classes in the WEB-INF/lib directory are treated the same as classes in WEB-INF/classes directory. All classes packaged in the war will be loaded with the same class loader.
所以WAR数据包中存在问题。您可以在 WAR 中使用 mvn dependency:tree 命令查看所有依赖关系。如果有两个或多个不同版本,则应删除其中之一。 如果包中没有冲突,可能是 jboss 加载了不同的 SOAP12HeaderFault 版本。您可以使用jboss-deployment-struct.xml排除相关依赖。
<deployment>
<!-- Exclusions allow you to prevent the server from automatically adding some dependencies -->
<exclusions>
<module name="javax.wsdl" />
</exclusions>
</deployment>
关于java.lang.LinkageError : javax. wsdl.extensions.soap12.SOAP12HeaderFault : How to debug?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56957608/