> But, other than efficiency concerns, it should still work if the
> particular class is *only* found in WEB-INF/classes and *not* in any of
> the WEB-INF/lib/*.jar files, right?
I don't think so. The class I'm trying to reload is in web-inf/classes, it
is not in any of the jars in web-inf/lib (is this what you mean?).
I believe (I've yet to test this) that the only way reloading works
currently (for me) is if I have no jars in web-inf/lib,
Kevin Jones
DevelopMentor
www.develop.com
> -----Original Message-----
> From: Craig R. McClanahan [mailto:[EMAIL PROTECTED]]
> Sent: 11 May 2001 18:58
> To: Tomcat-Dev
> Subject: Re: Class Reloading
>
>
> Thanks Kevin ... I think it's safe to assume that Beta 4 still has this
> issue :-(.
>
> But, other than efficiency concerns, it should still work if the
> particular class is *only* found in WEB-INF/classes and *not* in any of
> the WEB-INF/lib/*.jar files, right?
>
> NOTE: automatic reloading is currently supported only for unpacked
> classes in WEB-INF/lib.
>
> Craig
>
>
> On Fri, 11 May 2001, Kevin Jones wrote:
>
> > Sorry it's taken me a week to get back to you on this.
> Class-reloading is
> > not working in the latest nightly build. I know why, but don't
> know what the
> > fix is.
> >
> > The problem is in StandardClassLoader::loadClass. This method
> checks that
> > the class exists, if it does it wants to add it to the
> classCache HashMap.
> > To do this loadCLass has a loop that loops around all the 'repositories'
> > These repositories are the .jar files in the web-inf lib
> directory. In the
> > loop it does this
> >
> > classCache.put(name, new ClassCacheEntry
> > (clazz, classUrl,
> > classUrlConnection.getLastModified()));
> >
> > but the loop never breaks, so if you have 4 jars in your lib
> directory code
> > loops 5 times (once for the classes sub dir and once for each
> jar) and the
> > 'last' jar in wins. So the classes in my classes directory get added as
> >
> >
> "jar:jndi:/localhost/AddressBook/WEB-INF/lib/xerces.jar!/com/devel
> op/ewebjav
> > a/lab/Browse.class"
> >
> > The code should check which 'repository' the class is in and
> only add that
> > entry to the directory. Of course removing all the jars or
> putting a break
> > after the first loop (a brutal but effective solution in my
> case) fixes the
> > problem.
> >
> > Hope this helps,
> >
> > Kevin Jones
> > DevelopMentor
> > www.develop.com
> >
> >
>