Or maybe I don't mean the work directory, maybe I mean the webapp directory that the .war file got unpacked into. (Sorry, I don't have a Tomcat server in front of me to check.) I can't remember whether it was the .jsp files unpacked from the .war, or the .java & .class files compiled from the JSPs - some of those files weren't deleted when I updated a webapp, and that confused Tomcat. -- Len
On Wed, Jul 23, 2008 at 12:43, Len Popp <[EMAIL PROTECTED]> wrote: > 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]