Caused by: java.lang.RuntimeException: XPathFactory#newInstance() failed to create an XPathFactory for the default object model: http://java.sun.com/jaxp/xpath/dom with the XPathFactoryConfigurationException: javax.xml.xpath.XPathFactoryConfigurationException: No XPathFctory implementation found for the object model: http://java.sun.com/jaxp/xpath/dom

 

Recently I have deployed my web project under Eclipse using tomcat servlet container and found the following error that caused my web application fail to starup:

ERROR 2009-09-04 16:13:13,895 org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3768) - Exception sending context initialized event to listener instance of class web.context.impl.ContextConfigListener
java.lang.ExceptionInInitializerError
        at service.impl.ElasticPathServiceImpl.init(ElasticPathServiceImpl.java:81)
        at web.context.impl.ContextConfigListener.doPathConfig(ContextConfigListener.java:125)
        at web.context.impl.ContextConfigListener.contextInitialized(ContextConfigListener.java:61)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3764)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4216)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
        at org.apache.catalina.core.StandardService.start(StandardService.java:448)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
Caused by: java.lang.RuntimeException: XPathFactory#newInstance() failed to create an XPathFactory for the default object model: http://java.sun.com/jaxp/xpath/dom with 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(Unknown Source)
        at org.apache.solr.core.Config.(Config.java:52)
        ... 18 more
Sep 4, 2009 4:13:13 PM org.apache.catalina.core.StandardContext start
SEVERE: Error listenerStart
Sep 4, 2009 4:13:13 PM org.apache.catalina.core.StandardContext start

 

After days of heavy drinking and being miserable about this I have finally found the cause of the issue:

Multiple versions of the xalan.jar in libs

This was due to maven smartness that resolved one of my dependencies to use version 2.60 and the other to use 2.7.0 which were deployed under one tomcat and cause the problem.

 

After some more research on the internet I have found that the same issue appears when the following jar have multiple versions in libs:

xalan
xerces
xml-apis

Or if an implementation of XML api such as xalan is missing.

I think maven is great tool, but you need to use it responsibly.

Peace out...

 

 

 

This page was last updated on: 28/08/2010 13:47