To deal with a situation like this, I have seen #1 below
implemented by providing an object that is loaded in the
webapp classloader to the base class.  A good candidate
would be "this" from MyServletClass.  MyBaseServletClass
can obtain the classloader of this object to gain access
to the webapp classloader.

Cheers,
Larry

> -----Original Message-----
> From: Randy Layman [mailto:[EMAIL PROTECTED]]
> Sent: Wednesday, February 27, 2002 6:51 AM
> To: 'Tomcat Users List'
> Subject: RE: ClassNotFoundException
> 
> 
> 
>       I don't' believe what you are trying to do is possible.  Class
> loaders are created in a hierarchical manner with the 
> children knowing about
> their parents, but not the parents knowing about the 
> children.  This makes
> it impossible for the current class loader (using 
> Class.forName) to find the
> class file loaded by a child class loader (which the WEB-INF is).
> 
>       I see that you have three options:
>       1.  Engineer another solution to your problem
>       2.  Move MyServletClass into common
>       3.  Move MyBaseServletClass into all the WEB-INFs.
> 
>       Personally the order of approach I would take is 3, 2, 
> and then 1.
> 
>       Randy
> 
> > -----Original Message-----
> > From: Ken Ramirez [mailto:[EMAIL PROTECTED]]
> > Sent: Wednesday, February 27, 2002 12:11 AM
> > To: [EMAIL PROTECTED]
> > Subject: ClassNotFoundException
> > 
> > 
> > Hope someone can help:
> > 
> > I have a TOMCAT app containing a servlet as follows:
> > 
> > <TOMCAT_HOME>/webapps/MyApp/WEB-INF/classes/com/mycomp/MyServl
> > etClass.cl
> > ass
> > 
> > This class extends a base class that provides common 
> functionality for
> > all of my apps, and is stored in:
> > 
> > <TOMCAT_HOME>/common/classes/com/mycomp/MyBaseServletClass.cla
> > ss  (which
> > extends HttpServlet)
> > 
> > Through some context information, the MyBaseServletClass 
> receives the
> > classname of a class stored in my app's classes directory, 
> > which it is responsible for creating an instance of, using
> > Class.forName().  This is the path of the class to be created:
> > 
> > <TOMCAT_HOME>/webapps/MyApp/WEB-INF/classes/com/mycomp/MyOther
> > Class.clas
> > s
> > 
> > When the MyServletClass calls Class.forName, it fails with a
> > ClassNotFoundException, but if I move the MyServletClass 
> > to the MyApp/WEB-INF/classes path, everything works fine.
> > 
> > What gives?  I thought that Tomcat reads adds the classes 
> > directory for
> > all of the apps deployed in the server.xml 
> > (with Context info), which I defined as follows:
> > 
> >    <Context path="/MyApp" docBase="MyApp" debug="0" 
> > reloadable="true" />
> > 
> > 
> > Thanks,
> > 
> > Ken Ramirez - Principal/CTO
> > [EMAIL PROTECTED]
> >   
> > Master-Mind Consulting Services
> > http://www.mastermind.com <http://www.mastermind.com/> 
> > Ph - 570-688-9600
> > Fx - 208-275-2301
> >  
> > 
> > 
> 
> --
> To unsubscribe:   <mailto:[EMAIL PROTECTED]>
> For additional commands: <mailto:[EMAIL PROTECTED]>
> Troubles with the list: <mailto:[EMAIL PROTECTED]>
> 

--
To unsubscribe:   <mailto:[EMAIL PROTECTED]>
For additional commands: <mailto:[EMAIL PROTECTED]>
Troubles with the list: <mailto:[EMAIL PROTECTED]>

Reply via email to