https://issues.apache.org/bugzilla/show_bug.cgi?id=49022
Summary: JSP Container Class Loader :Unable to load class for
JSP
Product: Tomcat 6
Version: 6.0.24
Platform: PC
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P2
Component: Jasper
AssignedTo: [email protected]
ReportedBy: [email protected]
Created an attachment (id=25210)
--> (https://issues.apache.org/bugzilla/attachment.cgi?id=25210)
test jsp file
==Research version==
Tomcat 6.0.24
==Also test version==
Tomcat 5.5.23 have the same problem
==Steps to reproduce==
(100% reproduce)
1 create a simple test jsp page and publish to tomcat,
webapps/gnizr/login.jsp
2 explorer the page at,
http://localhost:8080/gnizr/login.jsp
page displays ok.
3 restart tomcat
4 delete the work folder of this page,
$ rm -rf work/Catalina/localhost/gnizr
NOTE 1: delete the entire folder, not only the following java/class files,
work/Catalina/localhost/gnizr/org/apache/jsp/login_jsp.java
work/Catalina/localhost/gnizr/org/apache/jsp/login_jsp.class
NOTE 2: DO NOT explorer the page before this step
5 explorer the page at,
http://localhost:8080/gnizr/login.jsp
and tomcat returns JasperException to explorer like that:
--
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from
fulfilling this request.
exception
org.apache.jasper.JasperException: org.apache.jasper.JasperException: Unable to
load class for JSP
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:156)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause
org.apache.jasper.JasperException: Unable to load class for JSP
org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:623)
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:144)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause
java.lang.ClassNotFoundException: org.apache.jsp.login_jsp
java.net.URLClassLoader$1.run(URLClassLoader.java:202)
java.security.AccessController.doPrivileged(Native Method)
java.net.URLClassLoader.findClass(URLClassLoader.java:190)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:134)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:66)
org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:621)
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:144)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache
Tomcat/6.0.24 logs.
--
==Code Research==
After debug tomcat, we found that exception throws at:
JspCompilationContext.java line 621:
servletClass = jspLoader.loadClass(name);
and before that, tomcat has successfully recompiled the jsp page at work
folder,
but it seems tomcat cannot find it when load it to memory.
we checked the object "ctxt", the data is right,
is it cause by JSP Container Class Loader's search path setting at startup?
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]