使用XPathFactory的类路径问题

时间:2009-04-28 14:42:03

标签: java classpath

我在其中一个实时服务器上遇到以下异常(运行相同代码的其他服务器似乎没问题):

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服务器上。

3 个答案:

答案 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需要同步。