> -----Original Message----- > From: Mark Thomas [mailto:ma...@apache.org] > Sent: Tuesday, November 11, 2014 12:14 PM > To: Tomcat Users List > Subject: Re: custom classloader missing root > > 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.
Since it is the <Loader> in the context.xml file, I am not calling it, tomcat is. Is there another way to do this so I can call it manually from within the webapp? > > > > > 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://cp.mcafee.com/d/k-Kr6xASyMy- > ejsK_sTsSztcQsLL6zAsepdETjd7bXNEVujpdETjd7bXNEV73C3qdQPhO- > qekknD3vNGTjMkH8-7NVsSH8-7NVsSzXb2rz3_nV- > UVB_HTbFILnUQsLfTd7fbnhIyyHt57BgY- > F6lK1FJ4SyrKrKr01DRJFVeJ9UxmRcSdysF_qrsvOAZzdJrwsrrFYq5U_dKc2WrZTQTy_NG > TjPBp7M-fbwGtlrrfJmSNf- > 00CS7DTzobZ8QgmrFeGFEwIvJa7RR3UCy1mlaiwhd44qRCrpvdBSUG > > Mark > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org