Bug 35243 - Constantly restarting Tomcat because Xerces Parser cannot be instantiated
Summary: Constantly restarting Tomcat because Xerces Parser cannot be instantiated
Status: CLOSED INVALID
Alias: None
Product: Tomcat 5
Classification: Unclassified
Component: Catalina (show other bugs)
Version: 5.5.9
Hardware: PC Windows Server 2003
: P2 normal (vote)
Target Milestone: ---
Assignee: Tomcat Developers Mailing List
URL:
Keywords:
: 35720 (view as bug list)
Depends on:
Blocks:
 
Reported: 2005-06-06 18:30 UTC by acdixon
Modified: 2005-07-18 10:21 UTC (History)
0 users



Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description acdixon 2005-06-06 18:30:30 UTC
I have tried Googling, looking at message boards, posting on message boards,
etc. and no one seems to know anything about this problem. I'm running Apache
Web Server 2.0.54 connected to Tomcat 5.5.9 by the mod_jk2 connector. 

When I try to access a JSP, I get the error:

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from
fulfilling this request.

exception

javax.servlet.ServletException: Provider
org.apache.xerces.jaxp.SAXParserFactoryImpl could not be instantiated:
java.lang.NullPointerException
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:249)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

root cause

javax.xml.parsers.FactoryConfigurationError: Provider
org.apache.xerces.jaxp.SAXParserFactoryImpl could not be instantiated:
java.lang.NullPointerException
javax.xml.parsers.SAXParserFactory.newInstance(Unknown Source)
org.apache.taglibs.standard.tlv.JstlBaseTLV.validate(Unknown Source)
org.apache.jasper.compiler.TagLibraryInfoImpl.validate(TagLibraryInfoImpl.java: 750)
org.apache.jasper.compiler.Validator.validateXmlView(Validator.java:1527)
org.apache.jasper.compiler.Validator.validate(Validator.java:1495)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:157)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:267)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:255)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:556)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:293)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

note The full stack trace of the root cause is available in the Apache
Tomcat/5.5.9 logs.
Apache Tomcat/5.5.9

Stopping and restarting the Tomcat service consistently seems to fix the
problem. To say I can consistenty reproduce the error is probably not accurate,
but it seems to manifest itself every time I significantly modify a JSP. (i.e.
When I modify a JSP, I get the error and have to restart Tomcat.)

The following shows up in the localhost.2005.06.06.log file:

Jun 6, 2005 8:51:43 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet jsp threw exception
javax.xml.parsers.FactoryConfigurationError: Provider
org.apache.xerces.jaxp.SAXParserFactoryImpl could not be instantiated:
java.lang.NullPointerException
	at javax.xml.parsers.SAXParserFactory.newInstance(Unknown Source)
	at org.apache.taglibs.standard.tlv.JstlBaseTLV.validate(JstlBaseTLV.java:152)
	at org.apache.taglibs.standard.tlv.JstlCoreTLV.validate(JstlCoreTLV.java:96)
	at
org.apache.jasper.compiler.TagLibraryInfoImpl.validate(TagLibraryInfoImpl.java:750)
	at org.apache.jasper.compiler.Validator.validateXmlView(Validator.java:1527)
	at org.apache.jasper.compiler.Validator.validate(Validator.java:1495)
	at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:157)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:267)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:255)
	at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:556)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:293)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:307)
	at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:385)
	at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:748)
	at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:678)
	at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:871)
	at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	at java.lang.Thread.run(Unknown Source)

The web.xml file for the application is as follows:

<?xml version="1.0" encoding="ISO-8859-1"?>
 
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">
 
	<display-name>Madisonville Community College Online Workshop Quiz Grading
Tools</display-name>
	<description>
		Servlets and JSPs for evaluating the results of online quizzes at the end of
online workshops.
	</description>
 
	<servlet>
		<servlet-name>QuizGrader</servlet-name>
		<servlet-class>QuizGraderServlet</servlet-class>
	</servlet>
 
	<servlet-mapping>
		<servlet-name>QuizGrader</servlet-name>
		<url-pattern>/quizgrader</url-pattern>
	</servlet-mapping>
 
</web-app>

I've posted this on the Java Developer forum twice and on HTMLforums.com once
and have received no replies.
Comment 1 Remy Maucherat 2005-06-16 11:14:26 UTC
Please use tomcat-user to investigate this.
Comment 2 Remy Maucherat 2005-07-16 01:47:10 UTC
*** Bug 35720 has been marked as a duplicate of this bug. ***
Comment 3 acdixon 2005-07-18 16:01:46 UTC
Now that the second post of this bug has been marked as a duplicate, I guess I
should post this new development on this bug report as well. I'm also reopening
the bug in the hopes that someone will read this update and be able to fix the
problem. I'm new to Bugzilla, so I don't know if that's the appropriate
procedure or not, but I'm sure one or more people will be more than happy to
tell me if it isn't.

Additional Information:

I have discovered that I can make this error go away by applying the JDK 1.4.x
compatibility patch, even though my JDK is version 1.5.0_03. This, however,
caused me to get the error:

java.lang.NoSuchMethodError: org.w3c.dom.Node.getTextContent()Ljava/lang/String;

Presumably, the getTextContent() method was not present in JDK 1.4.x, thus the
patch causes this error.

When I remove the patch, the NoSuchMethodError is resolved, but the original
error returns. Looking more like a bug all the time...
Comment 4 Remy Maucherat 2005-07-18 16:18:39 UTC
We do not do user support. With Java 5, you're using the JAXP API as implemented
by your vendor, so look in their docs.
We also only support Tomcat on pristine JVM installations (no custom extensions).

Please do not reopen the report.
Comment 5 acdixon 2005-07-18 18:21:05 UTC
Thankfully, someone finally pointed me in the right direction on this. I
obtained a newer version of the Xerces parser (version 2.7.0) and copied
resolver.jar, xercesImpl.jar, and xml-apis.jar into my common\endorsed directory
and the problem seems to have resolved itself. Hopefully, anyone else who has
this problem will run across this post instead of beating their heads against it
for months like I did!