Hi :-)

* I use the foolowing symbol to try to explain my question :-)
   MyServlet(0):  a old version of MyServlet
   MyServlet(1):  a new version of MyServlet
   MyServlet(2):  a newer(more) version of MyServlet
   MyServlet(3):  a newer(more more...) version of MyServlet
   ...
   but: as a file, all MyServlet(i)s have the same name: MyServlet.class

* if:
   - MyServlet(0) is in MyJar.jar
   - MyJar.jar is in WEB-INF/lib
   - and at the same time, MyServlet(1) is in WEB-INF/classes

* then:
   - when I start TC4.0-b5, and "make the first-time invoking to
      myapp/servlet/MyServlet", MyServlet(1) is loaded and invoked.

   from the following email, I can explain it:
   //***************************************************
   ...
  (2.3 requirement only) Classes and resources in /WEB-INF/classes
  override classes and resources with the same name under
  /WEB-INF/lib.
   ...
   Craig McClanahan
//***************************************************

* but:
  - now I update MyServlet in WEB-INF/classes: I copy
    MyServlet(2) into myapp/WEB-INF/classes to replace MyServlet(1)
  - I don't change anything in WEB-INF/lib

* now I find:
  - if I don't restart TC4.0-b5, I can not auto-reloading MyServlet(2):
    MyServlet(1) is still invoked
  - if I  restart TC4.0-b5, now MyServlet(2) is invoked

* if I delete MyJar.jar, and restart TC4.0-b5, now auto-reloading works:

   I can auto-reload MyServlet(i)

* I guess the reason is:
  - if MyServlet(0) is in a jar file in myapp/WEB-INF/lib, it will be
"overrided"
    by the another MyServlet(i) which is in myapp/WEB-INF/classes
  - but perhaps it will "prevent" auto-relaoding of MyServlet(i) which
is in
    myapp/WEB-INF/classes
  - this is not a "frequency-case", because people will not put
MyServlet both
    in WEB-INF/classes and WEB-INF/lib, several days ago I put
MyServlet(0)
    in MyJar.jar in WEB-INF/lib for a testing, but I forgot to delete it
after I finish
   the testing, but today I try to update MyServlet(i) in
WEB-INF/classes, and/but
    I find I can not auto-reload it,  finally I delete MyJar.jar, now I
can auto-reload
    MyServlet(i) :-)



Bo
June 16, 2001



Reply via email to