touch is a unix/linux command that only updates the time stamp on a file or
creates a new 0 byte file if the name given does not exist.  

Syntax:   touch filename

So to "touch" the web.xml file you would go to the directory where it's
located and type:  touch web.xml

This is meant to trick the system into thinking the file has been changed
and trigger the reload.



Dale Nicholson

> -----Original Message-----
> From: tamir [mailto:[EMAIL PROTECTED]]
> Sent: Wednesday, February 20, 2002 2:45 PM
> To: 'Tomcat Users List'
> Subject: RE: reloading classes - rephrase
> 
> 
> Hi,
> Tnx for your information. It was VERY useful.
> "touching" the web.xml sounds like a tricky thing, but that's 
> the reason
> we're programmers, isn't it ?
> 
> Tnx again
> Tamir
> 
> 
> -----Original Message-----
> From: Larry Isaacs [mailto:[EMAIL PROTECTED]]
> Sent: Wednesday, February 20, 2002 9:54 PM
> To: 'Tomcat Users List'
> Subject: RE: reloading classes - rephrase
> 
> 
> It would pick up the new jar if the web application is 
> reloaded, though
> simply adding the new jar won't trigger the reload.  However, 
>  "touching"
> the web.xml file should do the trick.
> 
> Cheers,
> Larry
> 
> > -----Original Message-----
> > From: tamir [mailto:[EMAIL PROTECTED]]
> > Sent: Wednesday, February 20, 2002 2:59 PM
> > To: 'Tomcat Users List'
> > Subject: RE: reloading classes - rephrase
> > 
> > 
> > Hey there,
> > Tnx, for the quick answer.
> > 
> > I meant to the first option of replacing a jar. However, it 
> > probably made a
> > problem because the 
> > class also existed in web-inf/classes (and i moved it to the 
> > jar...), which
> > made tomcat confused.
> > I checked it again, and it worked. TNX!!!
> > 
> > The only thing that still bothers me, is what will happen, if 
> > I'm adding a
> > new jar to web-inf/lib ?
> > Will tomcat be able to recognize it ?
> > 
> > Thank you,
> > Tamir
> > 
> > 
> > 
> > 
> > -----Original Message-----
> > From: Larry Isaacs [mailto:[EMAIL PROTECTED]]
> > Sent: Wednesday, February 20, 2002 8:04 PM
> > To: 'Tomcat Users List'
> > Subject: RE: reloading classes - rephrase
> > 
> > 
> > Does "override an existing jar" refer to replacing a jar 
> with a newer
> > version of the jar or adding a class in WEB-INF/classes to 
> > override the
> > class in a jar?
> > 
> > The first should work.  Adding a new class won't work because  the
> > DependClassLoader
> > only checks for "out of date" against the file, jar or class, 
> > that the class
> > was loaded from.
> > Thus, if the class was loaded from a jar, only the jar would 
> > be checked to
> > see if a
> > newer version of the jar was available.  If the class is 
> > loaded from a jar,
> > it isn't smart
> > enough to go looking for class files that may or may not exist.
> > 
> > Cheers,
> > Larry
> > 
> > > -----Original Message-----
> > > From: tamir [mailto:[EMAIL PROTECTED]]
> > > Sent: Wednesday, February 20, 2002 12:41 PM
> > > To: 'Tomcat Users List'
> > > Subject: RE: reloading classes - rephrase
> > > 
> > > 
> > > Hi again,
> > > 
> > > I still have some questions about the reloading classes 
> > mechanizem...
> > > 
> > > I checked tomcat 3.3.1-b1, for a few days, and I still 
> > > couldn't make my mind
> > > clear about when classes
> > > are refreshed and when not.
> > > 
> > > When I compiled classes to web-inf/classes, they were 
> > > refreshed all the
> > > time!!!. GOOD!
> > > 
> > > However, when I override an existing jar file at web-inf/lib, 
> > > tomcat wasn't
> > > always refreshed. I couldn't
> > > decide when it was refreshed and when not.
> > > 
> > > I'd really apperciate your comments for this subject or 
> > > correct me if i'm
> > > wrong.
> > > 
> > > Tnx in advance,
> > > Tamir
> > > 
> > > -----Original Message-----
> > > From: Larry Isaacs [mailto:[EMAIL PROTECTED]]
> > > Sent: Thursday, February 14, 2002 9:54 PM
> > > To: 'Tomcat Users List'
> > > Subject: RE: reloading classes - rephrase
> > > 
> > > 
> > > There were some reloading problems encountered with 
> > > URLClassLoader in Tomcat
> > > 3.3.
> > > A new attribute, use11Loader,  was added to 
> > > <LoaderInterceptor .../> as a
> > > workaround.
> > > If you can, give Tomcat 3.3.1 Beta 1 a try with 
> > > use11Loader="true" and see
> > > if you
> > > still have the problem.
> > > 
> > > See:
> > > 
> > > <http://jakarta.apache.org/tomcat/tomcat-3.3-doc/serverxml.htm
> > > l#LoaderInterc
> > > eptor11>
> > > 
> > > for details.
> > > 
> > > Cheers,
> > > Larry
> > > 
> > > > -----Original Message-----
> > > > From: tamir [mailto:[EMAIL PROTECTED]]
> > > > Sent: Thursday, February 14, 2002 2:10 PM
> > > > To: 'Tomcat Users List'
> > > > Subject: RE: reloading classes - rephrase
> > > > 
> > > > 
> > > > 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]>
> > > > 
> > > 
> > > --
> > > 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]>
> > > 
> > 
> > --
> > 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]>
> > 
> 
> --
> 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]>
> 

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

Reply via email to