Wildfly 上的轴 1

Posted

技术标签:

【中文标题】Wildfly 上的轴 1【英文标题】:Axis1 on Wildlfy 【发布时间】:2016-12-27 01:19:03 【问题描述】:

试图在 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 主要版本:47jdk1.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\modules\org\apache\axis\axis\main\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\modules\org\apache\axis\jaxrpc\main\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>

【问题讨论】:

你解决过这个问题吗??..遇到同样的问题 【参考方案1】:

使用本地资源而不是用户依赖解决了这个问题。 从 jboss-deployment-structure.xml 中移除:

<module name="org.apache.axis.axis" />

pom.xml(不再提供范围):

<dependency>
    <groupId>org.apache.axis</groupId>
    <artifactId>axis-jaxrpc</artifactId>
    <version>1.4</version>
</dependency>

<dependency>
    <groupId>org.apache.axis</groupId>
    <artifactId>axis-saaj</artifactId>
    <version>1.4</version>
</dependency>

<dependency>
    <groupId>axis</groupId>
    <artifactId>axis-wsdl4j</artifactId>
    <version>1.5.1</version>
</dependency>

<dependency>
    <groupId>axis</groupId>
    <artifactId>axis</artifactId>
    <version>1.4</version>
</dependency>

【讨论】:

以上是关于Wildfly 上的轴 1的主要内容,如果未能解决你的问题,请参考以下文章

使用 seaborn 更改直方图上的轴单位

Wildfly 9 上的部署失败

同一图上的条形图/线图,但条形图前面的轴和线图不同

在Wildfly上的Startup bean中通过JMX进行AttributeNotFoundException

Wildfly上的Servlet部署-找不到页面

如何在调试模式下运行 wildfly,作为 Windows 上的服务?