Tomcat puts common/endorsed/xml-apis.jar to the endorsed directory. This xml-api.jar is from Apache. When the application tries to invoke javax.xml.transform.TransformerFactory.newInstance() this xml-apis.jar implementation eventually tries to fall back to the hard-coded "org.apache.xalan.processor.TransformerFactoryImpl", which simply doesn't exist anywhere in JRE5. A few ways to fix this problem. - Also bundle Xalan in Tomcat. - Do not put xml-apis.jar and xerces.jar in the endorsed directory. Instead just put them in the classpath. In this way, Tomcat can find some parser/transformer in any version of JRE (1.3,1.4,5.0,...) See http://www.google.com/search?q=Tomcat+TransformerFactoryConfigurationError for how pervasive this issue is.
As per http://forum.java.sun.com/thread.jspa?tstart=30&forumID=34&threadID=542044&trange=15 another solution is to set a system property. System.setProperty("javax.xml.transform.TransformerFactory", "com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl"); This is not an issue for 5.5.x 5.0.x is no longer actively being worked on. I am therefore resolving this as WONTFIX since that best reflects the status of this issue.