0 Replies Latest reply on Aug 13, 2008 1:05 PM by Susan Mathew

    javax.servlet.ServletException: Unable to compile class for

    Susan Mathew Newbie

      Hi.

      I have been getting the 'unable to compile class for JSP' because 'package org.apache.jasper.runtime does not exist'. I found jasper-runtime.jar, which contains the package org.apache.jasper.runtime in:
      .../jboss-4.0.0RC1/server/marketingcalendar/deploy/jbossweb-tomcat50.sar/

      My app, marketingcalendar, is hosted on a Sun Solaris platform using JBoss 4.0.0, Sun's java 1.4.2, Struts, Spring, and Hibernate. I don't know what is triggering this error. It happens on least used and most used pages but not all at once. Pages that have been working for several days may suddenly come up with this error message.

      Restarting the server clears the problem. The error has come up with in a day of re-starting the server. Sometimes, the error pops up several days/weeks later after the page has been working for a while.

      When there is a jsp/java changes, I shut down the JBoss server, move in the modified jsp/class files, and then re-start the server. The jsp compilation should happen only once when a user brings up the specific page. So, I don't understand pages that were displaying fine for days would suddenly get this 'unable to compile class for JSP' error.

      In the .../jbossweb-tomcat50.sar/web.xml, I changed the value of the fork parameter to two weeks ago. That didn't fix the problem. The rest of the web.xml has the default values.

      Any ideas on how to fix this error?

      The following is a shortened version of the error users see when this problem occurs. I have set in bold the portions of the message that remains the same.

      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: Unable to compile class for JSP

      Generated servlet error:

      /app/marketingcalendar/jboss-4.0.0RC1/server/marketingcalendar/work/jboss.web/localhost/marketingcalendar/org/apache/jsp/happymeal/list_005fall_005fproperties_jsp.java:11: package org.apache.jasper.runtime does not exist
      public final class list_005fall_005fproperties_jsp extends org.apache.jasper.runtime.HttpJspBase
      ^


      Generated servlet error:
      /app/marketingcalendar/jboss-4.0.0RC1/server/marketingcalendar/work/jboss.web/localhost/marketingcalendar/org/apache/jsp/happymeal/list_005fall_005fproperties_jsp.java:12: package org.apache.jasper.runtime does not exist
      implements org.apache.jasper.runtime.JspSourceDependent {
      ^


      Generated servlet error:
      /app/marketingcalendar/jboss-4.0.0RC1/server/marketingcalendar/work/jboss.web/localhost/marketingcalendar/org/apache/jsp/happymeal/list_005fall_005fproperties_jsp.java:16: package org.apache.jasper.runtime does not exist
      private org.apache.jasper.runtime.TagHandlerPool _jspx_tagPool_bean_message_key_nobody;
      ^
      ...

      An error occurred at line: 39 in the jsp file: /happymeal/list_all_properties.jsp
      Generated servlet error:
      /app/marketingcalendar/jboss-4.0.0RC1/server/marketingcalendar/work/jboss.web/localhost/marketingcalendar/org/apache/jsp/happymeal/list_005fall_005fproperties_jsp.java:119: package org.apache.jasper.runtime does not exist
      org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, "../system/header_happymeal.jsp", out, false);
      ^


      An error occurred at line: 160 in the jsp file: /happymeal/list_all_properties.jsp
      Generated servlet error:
      /app/marketingcalendar/jboss-4.0.0RC1/server/marketingcalendar/work/jboss.web/localhost/marketingcalendar/org/apache/jsp/happymeal/list_005fall_005fproperties_jsp.java:426: package org.apache.jasper.runtime does not exist
      org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, "../system/footer.jsp", out, false);
      ^
      28 errors



      org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
      org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:332)
      org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:412)
      org.apache.jasper.compiler.Compiler.compile(Compiler.java:472)
      org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
      org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
      org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
      org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
      org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
      org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
      javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
      org.apache.struts.chain.commands.servlet.PerformForward.handleAsForward(PerformForward.java:99)
      org.apache.struts.chain.commands.servlet.PerformForward.perform(PerformForward.java:82)
      org.apache.struts.chain.commands.AbstractPerformForward.execute(AbstractPerformForward.java:51)
      org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:48)
      org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
      org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
      org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
      org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:280)
      org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858)
      org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:446)
      javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
      javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
      org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264)
      org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:217)
      org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
      org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:108)
      org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
      org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:193)
      org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
      org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148)
      org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
      org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:72)
      org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174)
      org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)

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