tomcat自动加载改变的class文件,且无需重启

不重启Tomcat有两种方式:热部署、热加载

热部署:容器在运行时重新部署整个项目

这类环境下,一般整个内存会被清空,重新加载。这类方式有可能造成sessin丢失等问题。tomcat 6以上已解决该问题。


热加载:最好是在调试过程中使用,以免整个项目加载。Debug模式支持热加载。

容器在运行时重新加载编译后的类。在这类环境下,内存不会被清空,sessin不会丢失,但容易造成内存溢出,或者找不到方法。一般转变类的布局和模型就会有异常,在已经有的变量和方法中转变是不会出问题的


热加载配置如下:
在tomcat的server.xml中,

<Context docBase="my_cms" path="/my_cms" reloadable="true" debug="0"  
privileged="true" source="org.eclipse.jst.jee.server:my_cms"/>

path:指定访问该Web应用的URL入口。 
docBase:指定Web应用的文件路径,可以给定绝对路径,也可以给定相对于<Host>的appBase属性的相对路径,如果Web应用采用开放目录结构,则指定Web应用的根目录,如果Web应用是个war文件,则指定war文件的路径。 
reloadable:如果这个属性设为true,tomcat服务器在运行状态下会监视在WEB-INF/classes和WEB-INF/lib目录下class文件的改动,如果监测到有class文件被更新的,服务器会自动重新加载Web应用。

猜你喜欢

转载自z724130632.iteye.com/blog/2363766