我有以下代码
SAXTransformerFactory stfactory;
stfactory = (SAXTransformerFactory) TransformerFactory.newInstance();
/// ClassLoaderUriResolver is another class.
stfactory.setURIResolver(new ClassLoaderUriResolver());
InputStream is = this.getClass().getClassLoader().getResourceAsStream("xsl/Hello.xsl");
StreamSource streamSource = new StreamSource(is);
mergeHandler = stfactory.newTransformerHandler(streamSource);
XMLReader xmlReader = XMLReaderFactory.createXMLReader();
还有一些代码......
问题出在行 mergeHandler = stfactory.newTransformerHandler(streamSource);
当我在 JBOSS IDE 中使用相同的 jar 集将该程序作为独立的 JAVA 程序运行时
- xalan-2.7.0.jar
- xercesImpl-2.7.1.jar
- xml-apis-1.3.04.jar
- xml-apis-ext-1.3.04.jar
我看到调用 stfactory.newTransformerHandler(streamSource);
返回
org.apache.xalan.transformer.TransformerHandlerImpl
并且我的 XLST 翻译可以作为一个简单的 java 程序正常工作
在 Jboss AS 7 容器上运行相同的代码时,我看到调用 stfactory.newTransformerHandler(streamSource);
返回
org.apache.xalan.transformer.TransformerIdentityImpl(不是 TransformerHandlerImpl)
结果,当我作为 Web 应用程序的一部分在 Jboss AS 7 Container 上运行时,XSLT 转换没有发生,我没有看到任何错误。我的 XLS FO 文档未翻译。
如何强制代码使用org.apache.xalan.transformer.TransformerHandlerImpl?