java.lang.LinkageError : javax. wsdl.extensions.soap12.SOAP12HeaderFault : How to debug?

标签 java jboss jvm

部署 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/

相关文章:

java - 使用 AWS SDK for Java 版本 2 进行 SNS 验证

jboss - 使用 javax.transaction.UserTransaction 在 EJB 中实现事务

java - ContainerRequestFilter JBoss AS 7.1.1 RestEasy 3.0.6.Final

java - 如何使用 Jquery 将多个值传递给 servlet

java - Spring集成应用和缓存

Java程序在注册监听器后终止

java - 如何在jBoss BPM套件流程中访问MySQL数据库

java - 为 JVM 编写语言

java - Java中的内联

java - 出于测试目的终止 Java 线程