I tested a very simple servlet application and found that classes in jar-files that
are placed in $CATALINA_HOME/shared/lib works just fine when the application is placed
under the $CATALINA_HOME/webapps directory.
However, if the application is placed elsewhere on the disc, let us say in
d:/myTomcat5Test/exploded and then a context configuration file is is created, let us
say $CATALINA_HOME/conf/Catalina/localhost/myTomcat5Test.xml and pointing the docBase
to d:/myTomcat5Test/exploded, then the application will throw a ClassNotFoundException.
This is what the context snippet looks like
*************************
<Context path="/myTomcat5Test" docBase="d:/myTomcat5Test/exploded"
debug="0" privileged="true">
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="localhost_myTomcat5Test_log." suffix=".txt"
timestamp="true"/>
</Context>
When testing the same application under Tomcat4, everyting works just fine.
Any ideas why folks ?
Regards
Erik
On 2004-09-17 [EMAIL PROTECTED] wrote:
>Hello
>
>Sorry to drag this issue on but, I still don't get Tomcat 5 to recognize classes in
>jar files located in $CATALINA_HOME/shared/lib
>
>I tried my orginal application (which was running fine under Tomcat 4.1.x, both on
>Windows and Linux)
>with Tomcat 5.0.28 and then with 5.0.16, both under Windows and Linux, but the
>problem with the ClassNotFoundEception still occurred.
>
>Then I decided to reduce as many potential problem areas as possible, by writing a
>new very simple application consisting of only one html page and one servlet, and
>only one external jar-file. (My original application was quite large with many jar
>dependencies)
>
>So I started up my IDE, created the new application, created the servlet, deployed in
>tomcat 4.1.x and, placed the jar-file in /shared/lib and of course it works.
>Then I deployed under Tomcat 5.0.28, but no, it does not work. After moving the
>jarfile to /common/lib it works though.
>
>This really puzzels me.
>
>What can I do to get to the bottom with this ?
>Is there any specific configuration that I could have missed ?
>Any other test cases I should perform ?
>Should I send my code to someone for inspection ?
>
>
>Any help is appreciated
>
>
>On 2004-09-01 Shapira Yoav wrote:
>
>
>>Hi,
>>Oh yeah, that reminds me, we might have a bug still present with
>>classloading from shared/lib in 5.0.x. Try a much earlier version, e.g.
>>5.0.16, and let us know if that works.
>>
>>Yoav Shapira
>>Millennium Research Informatics
>>
>>
>>>-----Original Message-----
>>>From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
>>>Sent: Wednesday, September 01, 2004 3:58 PM
>>>To: [EMAIL PROTECTED]
>>>Subject: What is the difference in classloading between tomcat 4.1.x
>>and
>>>5.0.x
>>>
>>>
>>>In a web application running under Tomcat, I have defined a filter in
>>the
>>>web.xml file. The filter is pointing to a class that is packed in a
>>jar-
>>>file, and the jar-file is kept in the $CATALINA_HOME/shared/lib
>>directory.
>>>
>>>In Tomcat 4.1.x the application is working without any problems. When
>>>trying to run the same application under Tomcat 5.0.28 a
>>>java.lang.ClassNotFoundException is thrown.
>>>
>>>If the jar-file is placed in $CATALINA_HOME/common/lib, then the class
>>is
>>>found and the application runs without problem.
>>>
>>>The same issue appears when using Listeners in the web.xml file.
>>>
>>>I have also tried the same setup with 5.0.27 which leads to the same
>>>result.
>>>
>>>What is it that has changed between 4.1x and 5.0.x, in regards to
>>>classloading, in order to cause this problem ?
>>>
>>>Any help in understanding this problem is appreciated.
>>>Regards
>>>Erik
>>>
>>>
>>> ********** stacktrace
>>>******************************************************
>>>2004-09-01 17:35:07
>>>NamingContextListener[/Catalina/localhost/webdialInstance]: Resource
>>>parameters for UserTransaction = null
>>>2004-09-01 17:35:07 StandardContext[/webdialInstance]Exception starting
>>>filter Compress
>>>java.lang.ClassNotFoundException:
>>>se.erit.web.servlet.filters.gzip.GZIPFilter
>>> at
>>>org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoade
>>r.ja
>>>va:1340)
>>> at
>>>org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoade
>>r.ja
>>>va:1189)
>>> at
>>>org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationF
>>ilte
>>>rConfig.java:211)
>>> at
>>>org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(Applicati
>>onFi
>>>lterConfig.java:308)
>>> at
>>>org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilt
>>erCo
>>>nfig.java:79)
>>> at
>>>org.apache.catalina.core.StandardContext.filterStart(StandardContext.ja
>>va:3
>>>698)
>>> at
>>>org.apache.catalina.core.StandardContext.start(StandardContext.java:434
>>9)
>>> at
>>>org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.j
>>ava:
>>>823)
>>> at
>>>org.apache.catalina.core.ContainerBase.access$000(ContainerBase.java:12
>>1)
>>> at
>>>org.apache.catalina.core.ContainerBase$PrivilegedAddChild.run(Container
>>Base
>>>.java:143)
>>> at java.security.AccessController.doPrivileged(Native Method)
>>> at
>>>org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:805)
>>> at
>>>org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595)
>>> at
>>>org.apache.catalina.core.StandardHostDeployer.addChild(StandardHostDepl
>>oyer
>>>.java:903)
>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> at
>>>sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.ja
>>va:3
>>>9)
>>> at
>>>sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccesso
>>rImp
>>>l.java:25)
>>> at java.lang.reflect.Method.invoke(Method.java:324)
>>> at
>>>org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:
>>216)
>>> at
>>org.apache.commons.digester.SetNextRule.end(SetNextRule.java:256)
>>> at org.apache.commons.digester.Rule.end(Rule.java:276)
>>> at
>>>org.apache.commons.digester.Digester.endElement(Digester.java:1058)
>>> at
>>>org.apache.catalina.util.CatalinaDigester.endElement(CatalinaDigester.j
>>ava:
>>>76)
>>> at
>>org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
>>>Source)
>>> at
>>>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Un
>>know
>>>n Source)
>>> at
>>>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDi
>>spat
>>>cher.dispatch(Unknown Source)
>>> at
>>>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unkn
>>own
>>>Source)
>>> at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
>>Source)
>>> at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
>>Source)
>>> at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>>> at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
>>Source)
>>> at
>>org.apache.commons.digester.Digester.parse(Digester.java:1567)
>>> at
>>>org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeplo
>>yer.
>>>java:488)
>>> at
>>>org.apache.catalina.core.StandardHost.install(StandardHost.java:863)
>>> at
>>>org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.jav
>>a:48
>>>3)
>>> at
>>>org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:427)
>>> at
>>org.apache.catalina.startup.HostConfig.start(HostConfig.java:983)
>>> at
>>>org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:3
>>49)
>>> at
>>>org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleS
>>uppo
>>>rt.java:119)
>>> at
>>>org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1091)
>>> at
>>org.apache.catalina.core.StandardHost.start(StandardHost.java:789)
>>> at
>>>org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)
>>> at
>>>org.apache.catalina.core.StandardEngine.start(StandardEngine.java:478)
>>> at
>>>org.apache.catalina.core.StandardService.start(StandardService.java:480
>>)
>>> at
>>>org.apache.catalina.core.StandardServer.start(StandardServer.java:2313)
>>> at org.apache.catalina.startup.Catalina.start(Catalina.java:556)
>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> at
>>>sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.ja
>>va:3
>>>9)
>>> at
>>>sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccesso
>>rImp
>>>l.java:25)
>>> at java.lang.reflect.Method.invoke(Method.java:324)
>>> at
>>org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:287)
>>> at
>>org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:425)
>>>
>>>*************** end of trace
>>>***************************************************
>>>
>>>
>>>
>>>
>>>Erik Rosengren
>>>ERIT Consulting AB
>>>+46-70-7183333
>>>mailto:[EMAIL PROTECTED]
>>>http://www.erit.se
>>>
>>>
>>>
>>>
>>>---------------------------------------------------------------------
>>>To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>>
>>
>>This e-mail, including any attachments, is a confidential business communication,
>>and may contain information that is confidential, proprietary and/or privileged.
>>This e-mail is intended only for the individual(s) to whom it is addressed, and may
>>not be saved, copied, printed, disclosed or used by anyone else. If you are not
>>the(an) intended recipient, please immediately delete this e-mail from your computer
>>system and notify the sender. Thank you.
>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: [EMAIL PROTECTED]
>>For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>
>
>
>
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]