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]