You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by to...@erit.se on 2004/09/23 15:46:40 UTC
RE: Classloading, jar-files in shared/lib works only when webapp is placed in $CATALINA_HOME/webapps (tomcat 5.0.28), could it be caused by privileged="true"
When creating my context snippet, i used the snippet for the tomcat admin application as a template.
I just realized that I did not remove the attribute ' privileged="true" '
When removing this attribute, the application works as expected, that is, classes in jar-files which are located in $CATALINA_HOME/shared/lib are found by the application.
So I suppose that this attribute affects the way that tomcat loads classes for applications.
Anyway, things now work as expected.
Regards
Erik
On 2004-09-23 tomcat-user@erit.se wrote:
>Then it works just fine. It also works when the jar is placed in the $CATALINA_HOME/common/lib
>
>/Erik
>
>
>On 2004-09-23 Vekemans Tom wrote:
>
>What happens if you put the jar file(s) in %yourWebApp%/WEB-INF/lib?
>>
>>Tom Vekemans
>>
>>
>>-----Original Message-----
>>From: tomcat-user@erit.se [mailto:tomcat-user@erit.se]
>>Sent: jeudi 23 septembre 2004 14:25
>>To: Tomcat Users List
>>Subject: Classloading, jar-files in shared/lib works only when webapp is
>>placed in $CATALINA_HOME/webapps (tomcat 5.0.28)
>>
>>
>>
>>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 tomcat-user@erit.se 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: tomcat-user@erit.se [mailto:tomcat-user@erit.se]
>>>>>Sent: Wednesday, September 01, 2004 3:58 PM
>>>>>To: tomcat-user@jakarta.apache.org
>>>>>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(WebappClassLoa
>>de
>>>>r.ja
>>>>>va:1340)
>>>>> at
>>>>>org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoa
>>de
>>>>r.ja
>>>>>va:1189)
>>>>> at
>>>>>org.apache.catalina.core.ApplicationFilterConfig.getFilter(Applicatio
>>nF
>>>>ilte
>>>>>rConfig.java:211)
>>>>> at
>>>>>org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(Applica
>>ti
>>>>onFi
>>>>>lterConfig.java:308)
>>>>> at
>>>>>org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFi
>>lt
>>>>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:4
>>34
>>>>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(Contain
>>er
>>>>Base
>>>>>.java:143)
>>>>> at java.security.AccessController.doPrivileged(Native Method)
>>>>> at
>>>>>org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:80
>>5)
>>>>> at
>>>>>org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595)
>>>>> at
>>>>>org.apache.catalina.core.StandardHostDeployer.addChild(StandardHostDe
>>pl
>>>>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(DelegatingMethodAcces
>>so
>>>>rImp
>>>>>l.java:25)
>>>>> at java.lang.reflect.Method.invoke(Method.java:324)
>>>>> at
>>>>>org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.jav
>>a:
>>>>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$FragmentContent
>>Di
>>>>spat
>>>>>cher.dispatch(Unknown Source)
>>>>> at
>>>>>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Un
>>kn
>>>>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(StandardHostDep
>>lo
>>>>yer.
>>>>>java:488)
>>>>> at
>>>>>org.apache.catalina.core.StandardHost.install(StandardHost.java:863)
>>>>> at
>>>>>org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.j
>>av
>>>>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(Lifecycl
>>eS
>>>>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:4
>>80
>>>>)
>>>>> at
>>>>>org.apache.catalina.core.StandardServer.start(StandardServer.java:231
>>3)
>>>>> 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(DelegatingMethodAcces
>>so
>>>>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:erik.rosengren@erit.se
>>>>>http://www.erit.se
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>---------------------------------------------------------------------
>>>>>To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
>>>>>For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
>>>>
>>>>
>>>>
>>>>
>>>>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: tomcat-user-unsubscribe@jakarta.apache.org
>>>>For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
>>>>
>>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>---------------------------------------------------------------------
>>>To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
>>>For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
>>>
>>>
>>
>>
>>
>>
>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
>>For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
>>
>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
>>For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
>>
>>
>>
>
>
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org