我在其中一个实时服务器上遇到以下异常(运行相同代码的其他服务器似乎没问题):
java.lang.RuntimeException: XPathFactory#newInstance() failed to create an XPathFactory for the default object model: http://java.sun.com/jaxp/xpath/domwith the XPathFactoryConfigurationException: javax.xml.xpath.XPathFactoryConfigurationException: No XPathFctory implementation found for the object model: http://java.sun.com/jaxp/xpath/dom
at javax.xml.xpath.XPathFactory.newInstance(XPathFactory.java:67)
我很确定我在类路径中有Xalan和Saxon jar(使用IBM Java 1.5)。
你有什么想法还有什么可能是错的吗?
修改
这是导致问题的代码:
XPathFactory factory = XPathFactory.newInstance();
它运行在一个大致基于catalina引擎的自定义Web服务器上。
答案 0 :(得分:7)
您需要在类路径中添加适当的.jar。就我而言,我使用了Saxon-HE库。
There exists a bug in Saxon9 you maybe run into like me.
该错误已在版本9.5.1.5中得到纠正。因此,您可以下载latest Saxon 9 HE。
答案 1 :(得分:3)
我自己找到答案:问题是使用Java 5和选项
的组合-Djava.endorsed.dirs
设置为包含xalan.jar的目录。
一旦删除,一切都会再次运作。
答案 2 :(得分:2)
确保您的类路径中有适当的xml-apis.jar和xerces jars用于您正在使用的xalan版本(请查看发行说明,了解您需要什么)。 还要确保你没有倍数,因为xercesImpl.jar,xml-apis.jar和xalan.jar需要同步。