tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Len Popp" <len.p...@gmail.com>
Subject Re: Tomcat cannot find infrequently used classes
Date Wed, 23 Jul 2008 16:48:41 GMT
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 <len.popp@gmail.com> 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,  <robert.purvis@nhs.net> 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:len.popp@gmail.com]
>> Sent: 23 July 2008 14:37
>> To: Tomcat Users List; robert.purvis@nhs.net
>> 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,  <robert.purvis@nhs.net> 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
>>> robert.purvis@nhs.net
>>> 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: users-unsubscribe@tomcat.apache.org
>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To start a new topic, e-mail: users@tomcat.apache.org
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>>
>>
>>
>> ***********************************************************************
>> 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: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>>
>>
>

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Mime
View raw message