尝试在Wildfly 10.0.0上部署战争。最终独立出现以下错误:
java.lang.LinkageError: loader constraint violation: when resolving method "org.apache.axis.description.TypeDesc.setXmlType(Ljavax/xml/namespace/QName;)V"
the class loader (instance of org/jboss/modules/ModuleClassLoader) of the current class, mypackage/MyClass,
and the class loader (instance of org/jboss/modules/ModuleClassLoader) for the method's defining class, org/apache/axis/description/TypeDesc,
have different Class objects for the type javax/xml/namespace/QName used in the signature
wildfly-10.0.0.Final \ modules \ org \ apache \ axis \ jaxrpc \ main \ axis-jaxrpc-1.4.jar \ javax \ xml \ namespace \ QName.class主要版本:47
jdk1。 8.0_60 \ jre \ lib \ rt.jar \ javax \ xml \ namespace \ QName.class主要版本:52
我已阅读Class Loading in WildFly,但不知道具体的"具体顺序"是:
Java应用程序中常见的错误来源包括API 部署中的类也由容器提供。这个 可以导致创建的类的多个版本和 部署无法正确部署。要在WildFly中防止这种情况, 模块依赖项按照应该阻止的特定顺序添加 这种情况不会发生。
jboss-deployment-structure.xml包含:
<module name="org.apache.axis.axis" />
pom.xml包含:
<dependency>
<groupId>axis</groupId>
<artifactId>axis</artifactId>
<version>1.4</version>
<scope>provided</scope>
</dependency>
wildfly-10.0.0.Final \模块\组织\阿帕奇\轴\轴\主\ module.xml:
<module xmlns="urn:jboss:module:1.1" name="org.apache.axis.axis">
<resources>
<resource-root path="axis-1.4.jar"/>
</resources>
<dependencies>
<module name="org.apache.axis.jaxrpc"/>
<module name="org.apache.axis.saaj"/>
<module name="org.apache.axis.wsdl4j"/>
<module name="org.apache.commons.discovery"/>
<module name="org.apache.commons.logging"/>
<module name="javax.activation.api"/>
<module name="javax.api"/>
<module name="javax.mail.api"/>
<module name="javax.servlet.api"/>
</dependencies>
</module>
wildfly-10.0.0.Final \模块\组织\阿帕奇\轴\ JAXRPC \主\ module.xml:
<module xmlns="urn:jboss:module:1.1" name="org.apache.axis.jaxrpc">
<resources>
<resource-root path="axis-jaxrpc-1.4.jar"/>
</resources>
</module>
答案 0 :(得分:0)
使用本地资源而不是用户依赖项解决了这个问题。 从jboss-deployment-structure.xml中删除:
for (int i = 0; i < filteredReqList.length(); i++) {
JSONObject item = filteredReqList.getJSONObject(i);
item.remove("selected");
}
pom.xml(不再提供范围):
<module name="org.apache.axis.axis" />