tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Caldarale, Charles R" <>
Subject RE: [OT] tomcat 5.5.25 shared lib and sharing webapp jars
Date Sat, 10 Oct 2009 14:26:22 GMT
> From: Christopher Schultz []
> Subject: Re: [OT] tomcat 5.5.25 shared lib and sharing webapp jars
> Is that because the primordial ClassLoader will hand-out references to
> any class already loaded by any ClassLoader, so if null is returned,
> then the current ClassLoader knows it needs to do its own loading (if
> it can)?

Mostly correct: the API of interest is ClassLoader.findClass(); every ClassLoader instance
is supposed to call that method of its parent, and only attempt a load itself if a ClassNotFoundException
occurs (null cannot be returned).  If its load fails, it must throw a CNFE back to its caller.
 All of the above assumes standard delegation rules are being followed, which the servlet
spec precludes.

> Also, the WebappClassLoader has to be able to re-load classes that are
> updated during runtime. In order to do that, it needs to know what has
> been loaded and when.

Yes, but that's actually done by restarting the webapp, not redefining an existing class.
 This results in a new instance of WebappClassLoader and a completely new node being created
on the classloader tree.  Note that JSPs are handled differently - there's a separate ClassLoader
created for each JSP file, so they can be easily replaced when modified.

 - Chuck

for use only by the intended recipient. If you received this in error, please contact the
sender and delete the e-mail and its attachments from all computers.

View raw message