I deploy a application to tomcat with context xml. I want the tomcat work at debug mode, I means if I change something inside a function, like change
String a=”123″;
to
String a=”456″;
tomcat should get the change without reload the application.
The web01.xml under %CATALINA_HOME%/conf/Catalina/localhost
<?xml version='1.0' encoding='utf-8'?>
<Context docBase="d:/document/workspace3.6/web01/WebContent" path="/web01" reloadable="false" debug="1" ></Context>
but now tomcat didn’t worked as I expected, if I replace the old class file with new version, I must restart tomcat to get the change.
Why tomcat didn’t reload the class,How should I do to let it work as debug mode?
I am not use Eclipse now. and I don’t want to set reloadable=”true”, this will reload the entire application if class changed.
I used tomcat5.5.23
Ok, here’s an actual example:
I have the
cnas-warmaven project. Once I build it with Maven, I get the following directory:In here I have all the stuff that normally would get packaged in the .war file, like .class files, .jsp files, .jar files etc. Effectively it’s the .war file exploded.
I also have a Tomcat 5.5 specifically tailored for the deployment of this war, cleverly placed in the tomcat_cnas folder. In the Tomcat config file (
conf\server.xml) I have the following:As you can see, in the “context” tag I have a docBase property pointing to the snapshot directory (the one where the war is exploded after maven builds it). Now, with this setup, and having this project imported into Eclipse, if I do a maven build, and then start this Tomcat, the war will be deployed and running. At this point, if I modify the content of a method in a .java file inside Eclipse (and save), then that code will be automatically taken into account by Tomcat and the application will behave differently, without any extra re-deployment. Hope this helps