Since the classes are servlets, it may be that Tomcat's work directory didn't get cleaned up properly when the app was re-deployed or re-loaded. I've seen similar problems caused that way. Try stopping Tomcat and deleting the contents of the work directory. -- Len
On Wed, Jul 23, 2008 at 09:47, <[EMAIL PROTECTED]> wrote: > The XYZ is just a placeholder. None of the actual classes are Tomcat > classes, they are all servlets we have written. > > Rob > > -----Original Message----- > From: Len Popp [mailto:[EMAIL PROTECTED] > Sent: 23 July 2008 14:37 > To: Tomcat Users List; [EMAIL PROTECTED] > Subject: Re: Tomcat cannot find infrequently used classes > > Is the class name really "XYZ" or is that just a placeholder? It makes a > difference which class it's looking for - it could be a class from Tomcat, > from your webapp, or from one of the libraries needed by the webapp. > -- > Len > > > On Wed, Jul 23, 2008 at 04:33, <[EMAIL PROTECTED]> wrote: >> I have a very large web application, running on three tomcats, which has >> been running for many years. >> >> There was a change made to the web application overnight, to add the >> following jar files to the webapp/WEB-INF/lib directory: >> >> avalon-framework-cvs-20020806.jar >> batik.jar >> crimson_1_1_3.jar >> icu4j_2_6.jar >> jacob.jar >> jaxen-full.jar >> saxon_6_5_3.jar >> saxpath.jar >> >> Today the web application started exhibiting behaviour I have never seen >> before. Some classes, in unrelated areas of the application are getting > lost >> by Tomcat. It seems to be classes that are not used often, so my theory is >> that the class (a servlet, or another class used by the servlet or JSP) is >> loaded, and used, then a period of time goes by during which it is not > used. >> The next time an attempt to use the same class then Tomcat gives this type >> of response: >> >> Error: >> javax.servlet.ServletException: Wrapper cannot find servlet class XYZ or a >> class it depends on >> at >> > org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:10 >> 76) >> at >> > org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:791) >> at >> > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja >> va:127) >> at >> > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja >> va:174) >> at >> > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127 >> ) >> at >> > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117 >> ) >> at >> > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java >> :108) >> at >> > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151) >> at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200) >> at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283) >> at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773) >> at >> > org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703) >> at >> > org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java >> :895) >> at >> > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav >> a:685) >> at java.lang.Thread.run(Thread.java:595) >> >> >> Root Stack Trace: >> java.lang.ClassNotFoundException: XYZ >> at >> > org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.jav >> a:1359) >> at >> > org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.jav >> a:1205) >> at >> > org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:10 >> 68) >> at >> > org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:791) >> at >> > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja >> va:127) >> at >> > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja >> va:174) >> at >> > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127 >> ) >> at >> > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117 >> ) >> at >> > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java >> :108) >> at >> > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151) >> at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200) >> at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283) >> at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773) >> at >> > org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703) >> at >> > org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java >> :895) >> at >> > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav >> a:685) >> at java.lang.Thread.run(Thread.java:595) >> >> ------------- >> >> Then the next time the page is requested the response is a 404 error. >> >> The three load-balanced tomcat servers all have the same setup, and by >> getting one of the other servers you would sometimes get the page that was >> reported as missing. >> >> It seems that Tomcat is unloading the classes, but having read up about >> unloading classes it doesn't seem possible unless the class loader that >> loaded the class is also unloaded. The reloadble option in server.xml is > NOT >> set to true. >> >> Any ideas? >> >> Robert Purvis >> Principal Technical Specialist >> >> >> Systems and Service Delivery >> NHS Connecting for Health >> 01392 206691 >> [EMAIL PROTECTED] >> www.connectingforhealth.nhs.uk >> >> >> *********************************************************************** >> This message may contain confidential and privileged information. >> If you are not the intended recipient you should not disclose, copy >> or distribute information in this e-mail or take any action in reliance >> on its contents. To do so is strictly prohibited and may be unlawful. >> Please inform the sender that this message has gone astray before >> deleting it. Thank you. >> >> 2008 marks the 60th anniversary of the NHS. It's an opportunity to pay >> tribute to the NHS staff and volunteers who help shape the service, and >> celebrate their achievements. >> >> If you work for the NHS and would like an NHSmail email account, go >> to: www.connectingforhealth.nhs.uk/nhsmail >> *********************************************************************** >> >> >> --------------------------------------------------------------------- >> To start a new topic, e-mail: users@tomcat.apache.org >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> > > --------------------------------------------------------------------- > To start a new topic, e-mail: users@tomcat.apache.org > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > > *********************************************************************** > This message may contain confidential and privileged information. > If you are not the intended recipient you should not disclose, copy > or distribute information in this e-mail or take any action in reliance > on its contents. To do so is strictly prohibited and may be unlawful. > Please inform the sender that this message has gone astray before > deleting it. Thank you. > > 2008 marks the 60th anniversary of the NHS. It's an opportunity to pay > tribute to the NHS staff and volunteers who help shape the service, and > celebrate their achievements. > > If you work for the NHS and would like an NHSmail email account, go > to: www.connectingforhealth.nhs.uk/nhsmail > *********************************************************************** > > > --------------------------------------------------------------------- > To start a new topic, e-mail: users@tomcat.apache.org > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]