我的电流互感器是Jboss附带的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调用了?
发布于 2014-03-07 17:17:31
您可以尝试将TransformerFactory属性的值更改为
net.sf.saxon.TransformerFactoryImpl这可能会将所有JAXP操作重定向到使用Saxon而不是Xalan,并且在像JBoss这样的大型系统中,很可能会有一些应用程序组件认为Xalan将被加载,如果它们获得了其他东西,就会失败。因此,更安全的方法是只更改您明确希望使用Saxon的代码,这可以通过替换标准JAXP调用来实现
TransformerFactory factory = TransformerFactory.newInstance();通过
TransformerFactory factory = new net.sf.saxon.TransformerFactoryImpl();除了在确保获得期望的处理器方面更加健壮之外,直接实例化类也比使用JAXP类路径搜索快得多。
https://stackoverflow.com/questions/22236746
复制相似问题