You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Gaurav Kushwaha <ga...@gmail.com> on 2007/11/15 12:35:16 UTC

jsps giving NoClassDefFoundError in production

Hi,
    I have an application running under heavy load. While redeploying, some
of my JSPs start throwing NoClassDefFoundError.

java.lang.NoClassDefFoundError: com/proj/tag/TagCloud
        at
org.apache.jsp.WEB_002dINF.jsps_.detail_005fpages..Entity1Detail_jsp._jspService
(Entity1Detail_jsp.java:1958)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java
:94)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.jasper.servlet.JspServletWrapper.service(
JspServletWrapper.java:324)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(
JspServlet.java:292)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:237)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:157)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(
ApplicationDispatcher.java:704)
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(
ApplicationDispatcher.java:474)
        at org.apache.catalina.core.ApplicationDispatcher.doForward(
ApplicationDispatcher.java:409)
        at org.apache.catalina.core.ApplicationDispatcher.forward(
ApplicationDispatcher.java:312)
        at org.apache.struts.action.RequestProcessor.doForward(
RequestProcessor.java:1063)
        at org.apache.struts.action.RequestProcessor.processForwardConfig(
RequestProcessor.java:386)
        at org.apache.struts.action.RequestProcessor.process(
RequestProcessor.java:229)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java
:1194)
        at com.chalchitr.actions.servlet.ChalchitrServlet.process(
ChalchitrServlet.java:48)
        at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java
:414)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:237)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:157)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(
ApplicationDispatcher.java:704)
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(
ApplicationDispatcher.java:474)
        at org.apache.catalina.core.ApplicationDispatcher.doForward(
ApplicationDispatcher.java:409)
        at org.apache.catalina.core.ApplicationDispatcher.forward(
ApplicationDispatcher.java:312)
        at org.tuckey.web.filters.urlrewrite.RewrittenUrl.doRewrite(
RewrittenUrl.java:176)
        at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(
UrlRewriteFilter.java:728)

The other jsps (Entity2Detail.jsp, Entity3Detail.jsp etc.) also use TagCloud
class and they work fine. Infact all 3 jsps use TagCloud class in exactly
the same fashion (<%@ include file="TagCloud.jsp" %>) .
Also, the whole thing is highly unpredictable. On next restart,
Entity2Detail.jsp would start giving this problem where as
Entity1Detail.jspwould work fine. Some times all of them work fine.
I suspect it has something to do with how jsps are compiled but can't figure
out the exact problem. Also, if I delete my "work/Catalina" directory
(forcing jasper to redo those jsps), that fixes the problem.
Please help.

Gaurav Singh
http://www.chakpak.com