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