tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ed Rouse <ero...@milner.com>
Subject RE: custom classloader missing root
Date Tue, 11 Nov 2014 17:01:38 GMT


-----Original Message-----
From: Mark Thomas [mailto:markt@apache.org] 
Sent: Tuesday, November 11, 2014 11:49 AM
To: Tomcat Users List
Subject: Re: custom classloader missing root

On 11/11/2014 15:34, Ed Rouse wrote:
> I am trying to convert a custom class loader from version 5.5 to version 8.0.11, running
under ubuntu.
> I have the following line in my context.xml file.
>                 <Loader 
> loaderClass="com.comsquared.idw.catalina.ext.IDWMClassLoader" 
> delegate="false" />
> 
> I have tried the delegate as both true and false with no difference. I 
> have found that the parent loader is java.net.URLClassLoader, not org.apache.catalina.loader.WebappLoader
or org.apache.catalina.loader.WebappClassLoaderBase as I expected.

Your expectation is incorrect.

> My class loader extends org.apache.catalina.loader.WebappClassLoader. 
> In order to add files, as far as I know I need an 
> org.apache.catalina.WebResourceRoot
> (probably StandardRoot) and an org.apache.catalina.Context (probably org.apache.catalina.core.StandardContext).
>
> So how do I get, find or create these 2 classes? 

You don't create them. You don't have access to the Context. Tomcat creates them and sets
them on your class loader. You then access them with getResources() and getResources().getContext().

> I think I can create a new StandardRoot if I have a Context, but what 
> needs to be done to create a proper context for a web application that is getting auto-loaded
by the tomcat container at startup?

Tomcat does all of this for you.

> I am missing some information and have, as yet, not been able to find any details about
how to accomplish this.

The source code is usually a good place to start. If you can't figure out how stuff works
from the source fire up a Tomcat instance, attach a debugger and step through the code.

Mark

I already tried getResources() but it returns null. hence my confusion. As far as I can tell,
tomcat is not setting the root or context on my class loader.

As for looking through the source, I'm not even sure where to start. Is there a document somewhere
that goes through the entire startup process of the tomcat container so I will at least have
an idea of where the tomcat is supposed to be doing this?

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@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