I'm using Tomcat 6.0.20 on Solaris 10 and JDK 1.6.0_16
I have a webapp that seemingly randomly fails to work due do a NoClassDefFoundError. The .tag files and JSPs are being pre-compiled and the webapp's web.xml is modified to reference the pre-compiled classes. My application code fails with the error:
Caused by: java.lang.NoClassDefFoundError: org/apache/jsp/tag/web/cg/refreshCookie_tag at jsp.WEB_002dINF.jsp.favoritesBrowse_jsp._jspx_meth_cg_005frefreshCookie_005f0(favoritesBrowse_jsp.java:551) at jsp.WEB_002dINF.jsp.favoritesBrowse_jsp._jspx_meth_c_005fif_005f0(favoritesBrowse_jsp.java:523) at jsp.WEB_002dINF.jsp.favoritesBrowse_jsp._jspService(favoritesBrowse_jsp.java:177) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at
org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551)
at
org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488)
at
org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:227)
at
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:257)
at
org.springframework.web.servlet.ViewRendererServlet.renderView(ViewRendererServlet.java:111)
at
org.springframework.web.servlet.ViewRendererServlet.processRequest(ViewRendererServlet.java:84)
at
org.springframework.web.servlet.ViewRendererServlet.doGet(ViewRendererServlet.java:65)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
What I see in catalina.out the first time the webapp fails is the
following InterruptedIOException. It appears that the classloader
reading from the file is interrupted somehow which causes the class load
to fail and once it has failed once it is never retried. My only
resolution is to restart the server. I haven't been able to pin down any
particular cause for this problem yet. Has anyone here seen anything
similar?
java.io.InterruptedIOException
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(FileInputStream.java:199)
at
org.apache.catalina.loader.WebappClassLoader.findResourceInternal(WebappClassLoader.java:2093)
at
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1786)
at
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:890)
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1354)
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at
jsp.WEB_002dINF.jsp.favoritesBrowse_jsp._jspx_meth_cg_005frefreshCookie_005f0(favoritesBrowse_jsp.java:551)
at
jsp.WEB_002dINF.jsp.favoritesBrowse_jsp._jspx_meth_c_005fif_005f0(favoritesBrowse_jsp.java:523)
at
jsp.WEB_002dINF.jsp.favoritesBrowse_jsp._jspService(favoritesBrowse_jsp.java:177)
at
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at
org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551)
at
org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488)
at
org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:227)
at
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:257)
at
org.springframework.web.servlet.ViewRendererServlet.renderView(ViewRendererServlet.java:111)
at
org.springframework.web.servlet.ViewRendererServlet.processRequest(ViewRendererServlet.java:84)
at
org.springframework.web.servlet.ViewRendererServlet.doGet(ViewRendererServlet.java:65)
smime.p7s
Description: S/MIME Cryptographic Signature
