On 11/11/2014 17:01, Ed Rouse wrote: > > > -----Original Message----- From: Mark Thomas > [mailto:ma...@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.
That depends on when you call it. > > As for looking through the source, I'm not even sure where to start. How about the source for WebappClassLoader and look for where setResources() is called? > 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? Nothing current but it hasn't changed much since this was written: http://localhost/docs/architecture/startup.html Mark --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org