Saxon - 如何使用JBOSS 4.2.3从Java调用

时间:2014-03-06 21:46:53

标签: java xml jboss saxon xalan

我当前的变换器是Jalan附带的xalan,位于路径'C:\ apps \ jboss-4.2.3.GA \ lib \ endorsed \ xalan.jar“

启动Jboss并为其设置所有变量的批处理文件有一个“使用编译XSLT处理器(XSLTC)”的部分。它的当前值为:

set JAVA_OPTS=%JAVA_OPTS% -Djavax.xml.transform.TransformerFactory=com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl

如果我将'saxon9he.jar'的副本放入'C:\ apps \ jboss-4.2.3.GA \ lib \ endorsed \'文件夹中,我如何更改批处理文件中的上一行以调用'saxon9he.jar'的文件?

我猜它现在被API调用了吗?

1 个答案:

答案 0 :(得分:0)

您可以尝试将TransformerFactory属性的值更改为

net.sf.saxon.TransformerFactoryImpl

这有可能将所有 JAXP操作重定向到使用Saxon而不是Xalan,并且在像JBoss这样的大型系统中,很可能会有一些应用程序组件假设Xalan将是加载并失败,如果他们得到别的东西。因此,更安全的方法是仅更改您明确要使用Saxon的代码,您可以通过替换标准JAXP调用来完成

TransformerFactory factory = TransformerFactory.newInstance();

通过

TransformerFactory factory = new net.sf.saxon.TransformerFactoryImpl();

除了在确保获得预期的处理器方面更加强大之外,直接实例化类而不是使用JAXP类路径搜索也要快得多。