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