jboss 7.1 xalan问题?

时间:2014-01-18 17:34:21

标签: java jboss jboss7.x xalan

我正在尝试在JBoss7上创建一个基于Apache Jena的应用程序。

Apache Jena使用Xalan 2.11.0 JBoss 7附带2.7.1

当我尝试调用应用程序时,我得到一个例外,其根源是:

org.apache.xerces.impl.dv.DVFactoryException:架构工厂类org.apache.xerces.impl.dv.xs.SchemaDVFactoryImpl不从SchemaDVFactory扩展

我怀疑这是因为版本的不同。我仔细阅读了模块文档(https://docs.jboss.org/author/display/MODULES/Introduction)并尝试更改了Xalan 2.11.0,但没有运气:Jboss在启动时就冻结了。有没有人成功完成这项工作,或者有人知道如何覆盖Xalan进行部署吗?

Thx

3 个答案:

答案 0 :(得分:4)

JBoss 7或JBoss EAP 6附带自己的xalan版本,您可以在其模块中找到, 在jboss eap 6.1:

<JBoss Home>/modules/system/layers/base/org/apache/xalan/main

如果您想先使用自己的jboss xalan,请在/WEB-INF/jboss-deployment-structure.xml中使用以下jboss部署描述符进行战争,将/META-INF/jboss-deployment-structure.xml排除在耳后:

<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
    <deployment>            
        <exclusions>            
            <module name="org.apache.xalan" />
            <module name="org.apache.xerces" /> 
        </exclusions>
    </deployment>
</jboss-deployment-structure>

我也排除了Xerces,因为通常它们捆绑在一起。

答案 1 :(得分:0)

CBU(碳基单位)中的问题当我应该使用xerces时,我正在玩xalan。它是xerces 2.11(DOH)

答案 2 :(得分:0)

最简单的方法是使用/WEB-INF/jboss-deployment-structure.xml部署您的应用程序,并明确排除您要覆盖的JBoss提供的库,然后将它们自己打包在应用程序中,例如: /WEB-INF/lib/xalan-2.11.0.jar

以下是jboss-deployment-structure.xml的示例:

<jboss-deployment-structure>
    <deployment>
        <dependencies>
            <module name="org.apache.xalan" />
            <module name="SOME.OTHER.MODULE.YOU.DONT.WANT.JBOSS.TO.PROVIDE" />
        </dependencies>
    </deployment>
</jboss-deployment-structure>
但是,我没有测试过这个。尝试它,如果它的工作和报告。如果不起作用,我们会尝试另一种方法。