You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by "P.van Kemenade" <pi...@kw.nl> on 2003/08/27 18:10:07 UTC

Re: webdav - finding class files

Hi

thanks,..

> >well, nothing. it just sounds very ugly, having the same jar files
> >running twice in one tomcat, once in server/lib and once in  
> common/lib.
> >is this how its _normally_ done ?

> Alternatively, have you try putting it inside the
> /lib directory of your webapp?  It will then only be accessible to that
> webapp tho.

yes, I tried that, and it works. woopie.
to extend the WebdavServlet, I've copied
	servlet-common.jar
	servlet-default.jar	
	servlet-webdav.jar
	and catalina.jar (oops)
from the server/lib into my /WEB-INF/lib

ugly, but it compiles and runs. it appears
WebdavServlet was not intended to be extended
by the authors, because quite some usefull things
are 'private' :-|

now .. let's see if i can add the missing PROPPATCH support :-)

>> I found this old thread about extending WebdavServlet,
>> in which Andreas Probst notes his webapp cant load classes
>> from the $CATALINA_HOME/servlet/lib/ dir.
>>
>> this url
>> 	
>> http://jakarta.apache.org/tomcat/tomcat-4.0-doc/class-loader- 
>> howto.html
>> makes it clear why.
>>
>> but now: how should I  extend WebdavServlet inside my webapp ?
>> If i put my own classes in the org.apache.bla package, it can't load
>> the classes from my webapp, ofcourse.
>>
>> should I copy all jar files from  $CATALINA_HOME/servlet/lib/*jar
>> to my webapps /WEB-INF/lib ?
>>
>>   that should work, but it sounds ugly.
>>
>>
>>
>>>
>>> On Tue, 16 Jul 2002, Andreas Probst wrote:
>>>
>>>> Date: Tue, 16 Jul 2002 13:59:49 +0200
>>>> From: Andreas Probst <an...@gmx.net>
>>>> Reply-To: Tomcat Users List <to...@jakarta.apache.org>
>>>> To: tomcat-user@jakarta.apache.org
>>>> Subject: RE: newbie - finding class files
>>>>
>>>>
>>>>> On Mon, 15 Jul 2002, Andreas Probst wrote:
>>>>>
>>>>>>
>>>>>> Hi all,
>>>>>>
>>>>>> does Tomcat really look into tomcatdir/server/lib? For me it   
>>>>>> seems
>>>>>> Tomcat doesn't.
>>>>>>
>>>>>
>>>>> This directory is only visible to the classloader for Tomcat
>>>>> itself, not
>>>>> for webapps.  There is a special rule that makes servlet classes in
>>>>> package "org.apache.catalina" available to webapps anyway, however,
>>>>> which
>>>>> is why the standard WebdavServlet (as well as the other Tomcat
>>>>> features
>>>>> that are available via servlets) can be loaded.
>>>>>
>>>>> Craig
>>>>
>>>> Thank you Craig.
>>>>
>>>> Could you please tell more about the rule or give a pointer. The
>>>> class-loader-info of the Tomcat-Docu says nothing about the rule,  
>>>> but
>>>> says, that "These classes and resources are TOTALLY invisible to web
>>>> applications".
>>>>
>>>
>>> Actually, the rule is very simple, and it is there in the docs.  Look
>>> at
>>> the picture of the class loader hierarchy in the Tomcat docs:
>>>
>>>
>>> http://jakarta.apache.org/tomcat/tomcat-4.0-doc/class-loader-
>>> howto.html
>>>
>>> The classes that are visible to a web application are those in the
>>> class
>>> loader for that webapp, and any of it's parent class loaders.  In
>>> other
>>> words, an application can see the "WebappX" class loader for itself,
>>> plus the "Shared", "Common", "System", and "Bootstrap" class loaders.
>>>  It
>>> can*not* see the "Catalina" class loader.
>>
>>
>


thanks,
*-pike
=========
Help stop world hunger -- visit 	
	<http://www.thehungersite.org>
Is The Hunger Site real? 	
	<http://www.umich.edu/~virus-busters/hunger.html>



Re: webdav - finding class files

Posted by Pike <pi...@kw.nl>.
Hi

for the record

> to extend the WebdavServlet, I've copied
> 	servlet-common.jar
> 	servlet-default.jar	
> 	servlet-webdav.jar
> 	and catalina.jar (oops)
> from the $/server/lib into my context's /WEB-INF/lib

I had to add
	tomcat-util.jar
too to do the same on tomcat5/macosx

there is a browseable example of this setup at
	http://www.v2.nl/~pike/webdav/

$2c,
*pike


===========
404 Not Found - The weapons you are looking for are currently 
unavailable. The country might be experiencing technical difficulties, 
or you may need to adjust your weapons inspectors mandate.