2014-01-18 102 views
1

我正在尝试在JBoss7上创建一个基于Apache Jena的应用程序。jboss 7.1 xalan问题?

阿帕奇耶拿使用的Xalan 2.11.0 JBoss的7天内与2.7.1

当我试图调用应用程序我得到一个异常,根本这就是:

org.apache.xerces .impl.dv.DVFactoryException:模式工厂类org.apache.xerces.impl.dv.xs.SchemaDVFactoryImpl没有从SchemaDVFactory扩展

我怀疑这是因为版本的不同。我阅读了Module文档(https://docs.jboss.org/author/display/MODULES/Introduction)并尝试更改Xalan 2.11.0,但没有运气:Jboss在启动时刚刚冻结。有没有人成功做到这一点,或者,有谁知道如何重写Xalan进行部署?

THX

+0

什么Xalan 2.11.0有没有这样的事情见项目网站:http://xalan.apache.org/你也许想到Xerces? – ctomc

回答

0

问题在CBU(基于碳单元)我与xalan的玩的时候我一直在玩的Xerces。它是xerces 2.11(DOH)

0

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

这里的JBoss部署-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> 

我没有测试过这一点,虽然。尝试它,如果它的工作和报告。如果这不起作用,我们会尝试另一种方法。

4

的JBoss 7或JBoss的EAP 6个附带了自己的Xalan版本,你可以将其模块间发现,在JBoss中 EAP 6.1:

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

如果你想使用自己首先你必须

排除JBoss的xalan的与下面的JBoss部署描述符/WEB-INF/jboss-deployment-structure.xml战争和/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,因为通常他们被捆绑togh醚。