tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christopher Schultz <ch...@christopherschultz.net>
Subject Re: custom classloader missing root
Date Wed, 12 Nov 2014 04:24:32 GMT
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Ed,

On 11/11/14 10:34 AM, 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'm a bit late to the party, but I'd like to point out that
delegate="false" will only do something if your own ClassLoader
implements a setDelegate(boolean) method and then actually changes its
own behavior.

> 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.

You asked Tomcat to use your ClassLoader instead of the standard
WebappClassLoader. Perhaps you meant for your own ClassLoader to
*extend* Tomcat's WebappClassLoader?

> My class loader extends 
> org.apache.catalina.loader.WebappClassLoader.

In that case, you'll get setDelegate as well as everything the
superclass supports. You can get everything WebappClassLoader can do
by calling super.whatever() in IDWMClassLoader.whatever(), or by not
overriding anything from the superclass.

> 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? 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?
> 
> I am missing some information and have, as yet, not been able to
> find any details about how to accomplish this.

Perhaps it would be better if you told us what exactly you are trying
to accomplish by using your own ClassLoader? Is there something that
WebappClassLoader doesn't do for you already?

- -chris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
Comment: GPGTools - http://gpgtools.org

iQIcBAEBCAAGBQJUYuEAAAoJEBzwKT+lPKRYA68QAMGhXjSWtW4KU6EjEKqMTPfa
Mn7iiVI7VImyJXg0kiy3QCPS807PsDyVcdDFqm3lsffPivUSYnZ+jcjA2Xpn1Bb1
VNhaQlr9UkPm23cFoQPFwSEhPsy33k9XkI8B0PaRtHsITMZhU23pNSQGbZ16wCuv
aeTxqoUAzToyvlW4Du+5LgjWa4XNj3dBFQoCebICv092D2PSr8cuUTxj5ti7Rhcx
+Qu921VDzlOWQ/j0aXdnn2Eds7g5cZsG7bSTUXJMSyFPRT9HaMbxBOH3k8475aPb
U17A3xhSXRi0kgMjn+Lny8OSiU/Vv5L51IyKmzV2Cn+ymlqRc0G1q1Q0P/itatpQ
rm3a/WYM4XDQt/EYp6BrvQgFb/dDZs9jYBxFvOFQNigh5c60h3yStQlQ9EMLoGqx
9RcvDI+IAqThLqC6aKrpNBAQbGxXOoGgSofX2PqWFC7GZOgqVbUYnE9EG36YzuCQ
dc3vPBBbasPvNwHID1NJbDNGmR8rc7ilM4s050sH/5WNlVOyHehA3j3jStrXdDkp
F/B04wjKsYS/IoNb/xrPdUHzdrVj9jZudDDbiNTeiU5Jk3tkVEBnBUWJa2KaJ2cj
pOV0NZBkbOHbMPNY8VRmcErg45Czy+UARK/CpVOzDtp8JEFbsMbUSBgiVtq7uUcv
5m8PxVl5f84IW6KtOeAz
=7Rdm
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Mime
View raw message