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]

Reply via email to