Hello again, Thank you very much for your quick response.
I read your answer and tried to refresh classes in the web-inf/lib. Nevertheless, when I override an already existing myxxx.jar file (in web-inf/lib) with a newer version tomcat 3.3 gets crazy. Our application is loading a class from myxxx.jar using Class.forName and activates some methods in it. Everything is going well until we override myxxx.jar with a newer jar (class interface hasn't been changed). Tomcat is refreshed well (although, losing session), however, when accessing again the class in the jar, I get the following exception: 2002-02-14 20:45:34 - Ctx(/movious) : Exception in R( /movious + /portlet + null ) - java.lang.ClassFormatError: com/movious/NivPortlet (Truncated class file) at java.lang.ClassLoader.defineClass0(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:495) at org.apache.tomcat.util.depend.DependClassLoader12.defineClassCompat(U nknown Source) at org.apache.tomcat.util.depend.DependClassLoader.loadClassInternal1(Un known Source) at org.apache.tomcat.util.depend.DependClassLoader12$1.run(Unknown Sourc e) at java.security.AccessController.doPrivileged(Native Method) at org.apache.tomcat.util.depend.DependClassLoader12.loadClass(Unknown S ource) at java.lang.ClassLoader.loadClass(ClassLoader.java:260) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:130) at com.movious.api.portlets.PortletManager.getClass(PortletManager.java: 578) at com.movious.api.portlets.PortletManager.createClip(PortletManager.jav a:532) at com.movious.api.portlets.PortletManager.getData(PortletManager.java:2 88) at com.movious.api.portlets.PortletServlet.doPost(PortletServlet.java:11 9) at com.movious.api.portlets.PortletServlet.doGet(PortletServlet.java:37) at javax.servlet.http.HttpServlet.service(HttpServlet.java) at javax.servlet.http.HttpServlet.service(HttpServlet.java) at org.apache.tomcat.facade.ServletHandler.doService(Unknown Source) at org.apache.tomcat.core.Handler.invoke(Unknown Source) at org.apache.tomcat.core.Handler.service(Unknown Source) at org.apache.tomcat.facade.ServletHandler.service(Unknown Source) at org.apache.tomcat.core.ContextManager.internalService(Unknown Source) at org.apache.tomcat.core.ContextManager.service(Unknown Source) at org.apache.tomcat.modules.server.Http10Interceptor.processConnection( Unknown Source) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(Unknown Source) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(Unknown Source) at java.lang.Thread.run(Thread.java:579) Am i doing something wrong Dear Guru ??? Tnx -----Original Message----- From: Craig R. McClanahan [mailto:[EMAIL PROTECTED]] Sent: Thursday, February 14, 2002 6:22 PM To: Tomcat Users List Subject: Re: reloading classes - rephrase On Thu, 14 Feb 2002, tamir wrote: > Date: Thu, 14 Feb 2002 10:54:15 +0200 > From: tamir <[EMAIL PROTECTED]> > Reply-To: Tomcat Users List <[EMAIL PROTECTED]> > To: [EMAIL PROTECTED] > Subject: reloading classes - rephrase > > Hi there, > I've a simple question, hope there's a simple answer. > > Is it possible to do autoreload for classes not found in WEB-INF/classes or > WEB-INF/lib > without restarting tomcat or reloading my web-app classes ? > (I mean i put my classes OUTSIDE the web-app). > > I'm using tomcat 3.3, but can do the advance to 4.02 if needed. > > Tnx Alot > for any information!!!!! > The answer is simple: no. Java provides no mechanism for unloading a class that has already been loaded. The way that reloading is implemented for a webapp is to throw away the entire class loader used to load that webapp, and starting over again. If we did that for shared classes, however, you'd have to restart *all* webapps because they would all need to be thrown away. If you want to take advantage of the auto-reload capability to update classes in a webapp, you *must* put those classes in /WEB-INF/classes, or in a JAR file in /WEB-INF/lib. Craig McClanahan -- 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]>