I think I've found a problem with reloading in 3.3.  When a the ROOT context is 
reloaded, it seems to blow away mappings to the other contexts, making them 
unavailable.  To demonstrate this, I performed the following steps:

1. Bring up Tomcat (this is the easy part :-)
2. From a browser, access http://127.0.0.1:8080/servlet/SnoopServlet.  We get a valid 
page back.
3. From a browser, access http://127.0.0.1:8080/examples/servlet/RequestInfoExample.  
We get a valid page back.
4. Change to $TOMCAT_HOME\webapps\ROOT\WEB-INF\classes and touch (or recompile) 
SnoopServlet.class.  
5. Repeat step 2.  We get a valid page back, and logging shows that we remove context 
DEFAULT:/ROOT and then readd it.
6. Repeat step 3. Now we get a 404 error and logging shows that we don't know anything 
about an examples context.

If I touch the RequestInfoExample.class file, we do shutdown and reload the 
DEFAULT:/examples context, and examples and ROOT still work.  This works ok on 3.2.2 
(and 3.2.3) but it fails on 3.3m3 (earliest build still available in the binary area 
for 3.3) and with the current codebase from CVS.

I'll continue to look into this, but I wanted to post it so that anyone else that has 
a little time, or more knowledge than me in this area (pretty much all of you ;-) 
could take a look and see what's going on.  Plus, I'm going on vacation for the next 2 
weeks and I'm not sure how much time I'll be able to look at it.

Mike Anderson

Reply via email to