Bug 6977 - Class loading problems for javax.xml.* classes when using xerces 2.0.0 in WEB-INF/lib
Summary: Class loading problems for javax.xml.* classes when using xerces 2.0.0 in WEB...
Status: RESOLVED DUPLICATE of bug 6374
Alias: None
Product: Tomcat 4
Classification: Unclassified
Component: Catalina (show other bugs)
Version: 4.0.3 Final
Hardware: PC All
: P3 critical (vote)
Target Milestone: ---
Assignee: Tomcat Developers Mailing List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2002-03-08 09:08 UTC by javaXpert
Modified: 2005-03-20 17:06 UTC (History)
0 users



Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description javaXpert 2002-03-08 09:08:26 UTC
I am using the JDK-1.4-LE version (jakarta-tomcat-4.0.3-LE-jdk14).

I have a trivial web-app which only contains a simple trial JSP to determine the
implementation class of DocumentBuilderFactory:

<%
String className =
javax.xml.parsers.DocumentBuilderFactory.newInstance().getClass().getName();
%>
<%=className%>

This works fine if the web-app contains only this JSP. But as soon as you place
Xerces 2.0.0 (xercesImpl.jar and xmlParserAPIs.jar) into WEB-INF/lib the
following exception is thrown:

javax.servlet.ServletException: Servlet.init() for servlet jsp threw exception
	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:935)
	at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:653)
	at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1012)
	at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1107)
	at java.lang.Thread.run(Thread.java:536)

root cause

java.lang.NoClassDefFoundError: org/w3c/dom/ranges/DocumentRange
	at java.lang.ClassLoader.defineClass0(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:509)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
	at
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1631)
	at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:926)
	at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1360)
	at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1243)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:322)
	at org.apache.xerces.jaxp.DocumentBuilderImpl.(DocumentBuilderImpl.java:106)
	at
org.apache.xerces.jaxp.DocumentBuilderFactoryImpl.newDocumentBuilder(DocumentBuilderFactoryImpl.java:88)
	at org.apache.jasper.parser.ParserUtils.parseXMLDocument(ParserUtils.java:197)
	at
org.apache.jasper.compiler.TldLocationsCache.processWebDotXml(TldLocationsCache.java:165)
	at org.apache.jasper.compiler.TldLocationsCache.(TldLocationsCache.java:138)
	at org.apache.jasper.EmbededServletOptions.(EmbededServletOptions.java:345)
	at org.apache.jasper.servlet.JspServlet.init(JspServlet.java:266)
	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:916)
	at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:653)
	at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1012)
	at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1107)
	at java.lang.Thread.run(Thread.java:536)
Comment 1 Remy Maucherat 2002-03-08 16:33:30 UTC
Move Xerces 2 in common/lib, or upgrade to 4.0.4 b1.

*** This bug has been marked as a duplicate of 6374 ***