You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Chuck Chopp <ch...@rtfmcsi.com> on 2004/09/01 16:06:37 UTC

JSP won't compile

I've got a very simple webapp that I'm putting together and it only makes 
use of the "html" tag library.  I have successfully deployed & executed this 
webapp [based on Struts v1.1] to WinXP w/Tomcat v4.1.30 & JDK v1.4.2 and to 
NetWare v6.5 w/Tomcat v4.1.28 & JDK v1.4.2.

When I deploy to an Alpha system running OpenVMS v7.3-1 w/the CSWS_JAVA v2.1 
product [Tomcat v4.1.24 w/JDK v1.4.2] installed, I get the following error 
in my browser when attempting to access the webapp:

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: Exception forwarding for name login: 
org.apache.jasper.JasperException: Unable to compile class for JSP
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java)
	at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java)
	at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java)
	at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java)
	at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java)
	at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java)
	at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java)
	at org.apache.catalina.core.StandardContext.invoke(StandardContext.java)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java)
	at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java)
	at 
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java)
	at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java)
	at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java)
	at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java)
	at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java)
	at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java)
	at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java)
	at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java)
	at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java)
	at java.lang.Thread.run(Thread.java:534)

root cause

javax.servlet.ServletException: Exception forwarding for name login: 
org.apache.jasper.JasperException: Unable to compile class for JSP
	at 
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java)
	at org.apache.jsp.index_jsp._jspService(index_jsp.java)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java)
	at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java)
	at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java)
	at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java)
	at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java)
	at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java)
	at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java)
	at org.apache.catalina.core.StandardContext.invoke(StandardContext.java)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java)
	at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java)
	at 
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java)
	at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java)
	at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java)
	at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java)
	at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java)
	at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java)
	at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java)
	at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java)
	at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java)
	at java.lang.Thread.run(Thread.java:534)


I can see that JSP compilation complete for my welcome page as there is an 
index_jsp.java and index_jsp.class file in the work area subfolder for my 
webapp.  However, the login_jsp.java class appears not to be compiling into 
login_jsp.class in the "WEB-INF/form" subfolder in that work area and this 
matches up with the error I'm getting.

Is there any known deficiency in Tomcat v4.1.24 that was corrected in 
v4.1.28 & newer?

How do I go about enabling logging that would allow me to see the actual 
compiler error that occurs when this auto-generated java file is being compiled?


TIA,

Chuck
-- 
Chuck Chopp

ChuckChopp (at) rtfmcsi (dot) com http://www.rtfmcsi.com

RTFM Consulting Services Inc.     864 801 2795 voice & voicemail
103 Autumn Hill Road              864 801 2774 fax
Greer, SC  29651

Do not send me unsolicited commercial email.


---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org


Re: JSP won't compile

Posted by Chuck Chopp <ch...@rtfmcsi.com>.
Additional information:

I found some additional information in a server log.  It looks like the Java 
class that is being generated for "login.jsp" is not getting declared 
properly, or else the source file "login_jsp.java" is not being found even 
though it exists.

Here's the snippets of what I found in the log file.  Please note that only 
the tail end of this is what gets shown in the browser.

What I'm curious about is what the package names should be for java classes 
that are generated as part of converting a JSP into a java class.  The 
source file does exist but for some reason the exception 
"java.lang.ClassNotFoundException" occurs for the class 
"org.apache.jsp.login_jsp".


2004-09-01 11:17:36 ApplicationDispatcher[/Demo01] Servlet.service() for 
servlet jsp threw exception
org.apache.jasper.JasperException: Unable to compile class for JSP
	at org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java)
	at 
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java)

[...snip...]

----- Root Cause -----
java.lang.ClassNotFoundException: org.apache.jsp.login_jsp
	at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java)
	at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java)
	at org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java)
	at 
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java)

[...snip...]

2004-09-01 11:17:36 StandardWrapperValve[jsp]: Servlet.service() for servlet 
jsp threw exception
org.apache.jasper.JasperException: Exception forwarding for name login: 
org.apache.jasper.JasperException: Unable to compile class for JSP
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java)

[...snip...]

----- Root Cause -----
javax.servlet.ServletException: Exception forwarding for name login: 
org.apache.jasper.JasperException: Unable to compile class for JSP
	at 
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java)
	at org.apache.jsp.index_jsp._jspService(index_jsp.java)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java)


-- 
Chuck Chopp

ChuckChopp (at) rtfmcsi (dot) com http://www.rtfmcsi.com

RTFM Consulting Services Inc.     864 801 2795 voice & voicemail
103 Autumn Hill Road              864 801 2774 fax
Greer, SC  29651

Do not send me unsolicited commercial email.


---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org


Re: JSP won't compile

Posted by Chuck Chopp <ch...@rtfmcsi.com>.
OK, things just go weirder.

My struts-based webapp uses a welcome page named "index.jsp", which is 
located in the webapp's root folder.

My other JSP files are all located in the subfolder "WEB-INF/form". 
According to all of the tutorials I've read, this is a very reasonable thing 
to do as it makes the JSP files inaccessible to direct access from a web 
browser and requires that an action be executed in order to have a JSP 
displayed.

On a whim, I moved all of my JSP files to the root folder of the webapp, 
modified the global forwards & actions in struts-config.xml and then rebuilt 
the deployment WAR file.  When the updated WAR file was deployed to my 
OpenVMS system, it suddenly started working.  If I switch things back to 
having my JSP files in the "WEB-INF/form" subfolder then I get the JSP 
compilation again for Tomcat on OpenVMS.  However, for Tomcat on WinXP & 
NetWare v6.5 there's no problem regardless of where my JSP files are located.

At this point it looks like the Tomcat installation on OpenVMS is having 
problems with JSP files not located in the webapp's root folder.


-- 
Chuck Chopp

ChuckChopp (at) rtfmcsi (dot) com http://www.rtfmcsi.com

RTFM Consulting Services Inc.     864 801 2795 voice & voicemail
103 Autumn Hill Road              864 801 2774 fax
Greer, SC  29651

Do not send me unsolicited commercial email.


---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org