当我运行一个简单的函数来更新没有 jars 的 DOM XML 时,它运行正确。如果我将它的代码放入一个有很多 jar 的现有项目中,我会得到这个异常
Exception in thread "main" java.lang.RuntimeException: net.sf.saxon.trans.XPathException: DOMSource cannot be processed: check that saxon9-dom.jar is on the classpath
这里
transformer.transform(source, result);
在哪里
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(docBuilder.parse(filepath));
如何在不引入对这个 jar 的依赖的情况下解决这个问题?谢谢。
最佳答案
此消息来自旧版本的 Saxon,您可以按照建议将 saxon9-dom 放在类路径中,或者用更新的版本替换 Saxon jar 文件来解决它。
一般来说,我建议不要使用 JAXP TransformerFactory 机制来加载 XSLT 处理器。您需要决定要使用哪个 XSLT 处理器,用它测试您的应用程序,然后确保在生产中加载这个处理器,而不管类路径上可能有什么。如果您希望您的应用程序与多个 XSLT 处理器一起工作,那么您可以实现这一点,但应该以受控方式完成。
关于java - 无法处理 DOMSource : check that saxon9-dom. jar 在类路径上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15438011/