我正在尝试在JBoss7上创建一个基于Apache Jena的应用程序。
Apache Jena使用2.7.1附带的Xalan2.11.0 JBoss 7
当我试图调用应用程序时,我得到了一个异常,它的根是:
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
发布于 2014-03-06 22:51:48
JBoss 7或JBoss EAP6附带了自己的xalan版本,您可以在jboss EAP6.1中的模块中找到该版本:
<JBoss Home>/modules/system/layers/base/org/apache/xalan/main
如果你想首先使用你自己的,你必须在war的/WEB-INF/jboss-deployment-structure.xml和ear的/META-INF/jboss-deployment-structure.xml中用下面的jboss部署描述符排除jboss xalan:
<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,因为它们通常捆绑在一起。
发布于 2014-01-26 20:57:17
CBU (Carbon Based Unit)的问题我本应该玩xerces,但我却在玩xalan。它是xerces 2.11 (DOH)
发布于 2014-01-27 03:14:06
最简单的方法是使用/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>不过,我还没有测试过这个。如果工作正常,请尝试并报告。如果不起作用,我们将尝试另一种方法。
https://stackoverflow.com/questions/21207490
复制相似问题