【问题标题】:xml-api jar issue in wildfly - module loading precedenceWildfly 中的 xml-api jar 问题 - 模块加载优先级
【发布时间】:2017-05-30 07:53:56
【问题描述】:

我正在 wildfly 中创建全局模块,其中也包括 xml-api jar。 但是当对xml文件进行解析时,会抛出以下异常。

我在论坛中搜索了许多帖子,说要从类路径中删除 xml-api 和 xml-beans jar。因为 JBoss / JDK xml jar 和我们的 xml-api jar 存在冲突。但我需要优先加载我的罐子。我怎样才能做到这一点。请提供建议。

13:11:51,686 ERROR [stderr] (default task-1) Caused by: java.lang.ClassCastExcep
tion: __redirected.__DatatypeFactory cannot be cast to javax.xml.datatype.Dataty
peFactory
13:11:51,688 ERROR [stderr] (default task-1)    at javax.xml.datatype.DatatypeFa
ctory.newInstance(Unknown Source)
13:11:51,690 ERROR [stderr] (default task-1)    at com.thoughtworks.xstream.conv
erters.extended.DurationConverter$1.getFactory(DurationConverter.java:39)
13:11:51,691 ERROR [stderr] (default task-1)    at com.thoughtworks.xstream.conv
erters.extended.DurationConverter.<init>(DurationConverter.java:44)
13:11:51,691 ERROR [stderr] (default task-1)    ... 74 more 

谢谢 森提尔

【问题讨论】:

  • 名为xml-apis.jar 的罐子比其他所有罐子加起来还要负责更多的构建和/或运行时问题。摆脱它。这些 API 和实现由您的 JDK 提供
  • 如果我删除了 xml-api.jar,那么它会导致 NoSuchClass 错误“org.xml.SaxException”。此类在 xml-api.jar 中。
  • 如果您描述如何解析 XML 将会有所帮助。对于大多数用例,JDK 提供了您需要的所有 API。 org.xml.SaxException 是 JDK 的一部分,因此这将是您的模块定义中的一个错误。
  • 实际上我正在尝试在wildfly 10中部署drools jar。我的应用程序具有由drools lib解析的kmodule.xml。我的代码不解析 xml。如果我将所有库放在 WEB-INF/lib 文件夹中,它工作得很好。但是,如果我声明全局模块,它就不起作用了。
  • 你用的是什么版本的口水?

标签: wildfly


【解决方案1】:

我解决了这个问题。 我删除了以下模块,并在我的 module.xml 中添加了 javax.api 和 org.slf4j 作为依赖项。这是因为 wildfly 已经拥有这些模块并作为核心类加载的一部分加载。这就是为什么重新加载时会发生冲突的原因。

模块.xml

删除的内容:

<resource-root path="xml-apis-<version>.jar">
<resource-root path="slf4j-api-<version>.jar"/>

添加内容:

<dependencies>
         <module name="javax.api"/>
        <module name="org.slf4j"/>
  </dependencies>

更正了 Module.xml

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.3" name="drools">
    <resources>

        <resource-root path="aether-api-1.0.0.v20140518.jar"/>
        <resource-root path="aether-connector-basic-1.0.0.v20140518.jar"/>
        <resource-root path="aether-impl-1.0.0.v20140518.jar"/>
        <resource-root path="aether-spi-1.0.0.v20140518.jar"/>
        <resource-root path="aether-transport-file-1.0.0.v20140518.jar"/>
        <resource-root path="aether-transport-http-1.0.0.v20140518.jar"/>
        <resource-root path="aether-transport-wagon-1.0.0.v20140518.jar"/>
        <resource-root path="aether-util-1.0.0.v20140518.jar"/>
        <resource-root path="ant-1.8.3.jar"/>
         <resource-root path="ant-launcher-1.8.3.jar" />   
         <resource-root path="antlr-runtime-3.5.jar"/>
        <resource-root path="aopalliance-1.0.jar"/>
        <resource-root path="cdi-api-1.0-SP4.jar"/>
        <resource-root path="commons-codec-1.4.jar"/>
        <resource-root path="commons-lang-2.6.jar"/>
        <resource-root path="commons-logging-1.1.1.jar"/>
        <resource-root path="dom4j-1.6.1.jar"/>
        <resource-root path="drools-beliefs-6.5.0.Final.jar"/>

        <resource-root path="drools-compiler-6.5.0.Final.jar"/>
        <resource-root path="drools-core-6.5.0.Final.jar"/>
        <resource-root path="drools-decisiontables-6.5.0.Final.jar"/>
        <resource-root path="drools-jsr94-6.5.0.Final.jar"/>
        <resource-root path="drools-persistence-jpa-6.5.0.Final.jar"/>
        <resource-root path="drools-pmml-6.5.0.Final.jar"/>
        <resource-root path="drools-reteoo-6.5.0.Final.jar"/>
        <resource-root path="drools-scorecards-6.5.0.Final.jar"/>
        <resource-root path="drools-verifier-6.5.0.Final.jar"/>
        <resource-root path="drools-templates-6.5.0.Final.jar"/>

        <resource-root path="ecj-4.4.2.jar"/>
        <resource-root path="guava-13.0.1.jar"/>
        <resource-root path="hibernate-jpa-2.0-api-1.0.1.Final.jar"/>
        <resource-root path="httpclient-4.3.6.jar"/>
        <resource-root path="httpcore-4.3.3.jar"/>
        <resource-root path="itext-2.1.2.jar"/>
        <resource-root path="javassist-3.18.1-GA.jar"/>
        <resource-root path="javax.inject-1.jar"/>
        <resource-root path="jaxb-core-2.2.11.jar"/>
        <resource-root path="jaxb-impl-2.2.11.jar"/>
                <resource-root path="jboss-interceptors-api_1.1_spec-1.0.1.Final.jar"/>
        <resource-root path="jboss-transaction-api_1.1_spec-1.0.1.Final.jar"/>
        <resource-root path="jcl-over-slf4j-1.7.2.jar"/>
        <resource-root path="jsoup-1.8.3.jar"/>
        <resource-root path="jsr94-1.1.jar"/>
        <resource-root path="jsr250-api-1.0.jar"/>
        <resource-root path="kie-api-6.5.0.Final.jar"/>
                <resource-root path="kie-ci-6.5.0.Final.jar"/>
        <resource-root path="kie-internal-6.5.0.Final.jar"/>
                                <resource-root path="knowledge-api-6.5.0.Final.jar"/>

        <resource-root path="maven-aether-provider-3.2.5.jar"/>
         <resource-root path="maven-artifact-3.2.5.jar" />   
    <resource-root path="maven-compat-3.2.5.jar"/> 
        <resource-root path="maven-core-3.2.5.jar"/>
        <resource-root path="maven-model-3.2.5.jar"/>
        <resource-root path="maven-model-builder-3.2.5.jar"/>
        <resource-root path="maven-plugin-api-3.2.5.jar"/>
        <resource-root path="maven-repository-metadata-3.2.5.jar"/>

        <resource-root path="maven-settings-3.2.5.jar"/>
        <resource-root path="maven-settings-builder-3.2.5.jar"/>
        <resource-root path="mvel2-2.2.8.Final.jar"/>
        <resource-root path="org.eclipse.sisu.inject-0.3.0.M1.jar"/>
        <resource-root path="org.eclipse.sisu.plexus-0.3.0.M1.jar"/>
        <resource-root path="plexus-cipher-1.7.jar"/>
        <resource-root path="plexus-classworlds-2.5.2.jar"/>
            <resource-root path="plexus-component-annotations-1.5.5.jar"/> 
         <resource-root path="plexus-interpolation-1.21.jar"/>
        <resource-root path="plexus-sec-dispatcher-1.3.jar"/>
        <resource-root path="plexus-utils-3.0.20.jar"/>
        <resource-root path="poi-3.13.jar"/>
        <resource-root path="poi-ooxml-3.13.jar"/>  
        <resource-root path="poi-ooxml-schemas-3.13.jar"/>
        <resource-root path="protobuf-java-2.6.0.jar"/>

        <resource-root path="sisu-guice-3.2.3-no_aop.jar"/>
    <!--    <resource-root path="slf4j-api-1.7.2.jar"/>  -->
        <resource-root path="stax-api-1.0.1.jar"/>
        <resource-root path="wagon-http-2.6.jar"/>
         <resource-root path="wagon-http-shared-2.6.jar"/> 
        <resource-root path="wagon-provider-api-2.6.jar"/>
        <resource-root path="xmlbeans-2.3.0.jar"/>
         <resource-root path="xmlpull-1.1.3.1.jar"/> 
        <resource-root path="xpp3_min-1.1.4c.jar"/>
        <resource-root path="xstream-1.4.9.jar"/>
    </resources>
 <dependencies>

        <module name="javax.api"/>
        <module name="org.slf4j"/>

  </dependencies>
</module>

谢谢

森提尔

【讨论】:

  • 是的——这就是我要走的路。我认为您可以通过删除cdi-api-1.0-SP4.jarjaxb-*-2.2.11.jarjsr250-api-1.0.jarstax-api-1.0.1.jar 来进一步改进这一点。
  • 谢谢史蒂夫。我会试试你的建议。
猜你喜欢
  • 2014-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-24
  • 1970-01-01
相关资源
最近更新 更多