|I'm not sure.  My remote interface is being loaded by an
|AdaptiveClassLoader (which is what Tomcat uses to get classes from
|WEB-INF/{classes,lib}).  It's parent is the context class loader which
|has all of my JNDI entries.  However, for some reason JNDI is not using
|that class loader.
|
|Here's what I know:
|
|1.  The class loader of the remote interface is an adaptive class loader
|(which has all the classes).  It's parent is a sun.misc.Launcher...
|loader (maybe it should be the thread context class loader?).

If that is the case it means the Tomcat loading is not triggered by the J2EE
deployer.  If it was you would see the proper URLClassLoader.  Are you using
the J2EE deployer for Tomcat?

|2.  The class loader of the class doing the work is the same as the
|remote interface.

what class "doing the work" the local one or the one "behind Remote".

I suspect the local one (APL, default) ie. non j2ee deployer

|3.  The thread context class loader is the one that has my JNDI.

well you said in 1 that that you have acl and sun.misc as parent loading the
class.  In context you have the right one then... but that is not set when
you load however it should be with the J2EE deployer.

|4.  The object looked up through JNDI has a class loader from
|sun.rmi.server.LoaderHandler, whose parent loader is the same as the
|context class loader for the current thread.
|
|I don't know how to make the thread context class loader know directly
|about those classes.  Any ideas?

the j2ee deployer sets the parent CL to the contextCL before calling the
tomcat loading, the jndi uses the contextCL, jboss uses the contextCL,
tomcat too if deployer is used (that is part of its purpose expose class
visibility in integration).

Are you sure you use the deployer? if so then that is buggy

marc


|
|Thanks.
|
|


Reply via email to