Tomcat热启动

时间:2023-03-08 17:14:00
Tomcat热启动

===== 2017.7.1 =====

如果是对原来的类方法修改,那么热启动非常好用;如果是添加了新的类或方法(非最上层的controller),那么此方法也是好用的;但是如果是在controller上添加了新的接口,就不好用了,必须重启Tomcat;

==================

项目在开发阶段经常会修改后台Java代码,但是每次make project后都需要重启Tomcat才能是代码生效。

解决办法是修改Tomcat的conf目录下server.xml的配置文件,使reloadable=true,这样每次修改n个java文件,make的时候把这些class文件到Tomcat监听目录下,会自动提示有n个class reloaded。

以下是server.xml的修改:

<Context path="C:\Users\jonney\Desktop\wms\out\artifacts\wms_Web_exploded" debug="1" reloadable="true"/>

完全host节点:

       <Host name="localhost"  appBase="webapps"
unpackWARs="true" autoDeploy="true"> <Context path="C:\Users\jonney\Desktop\wms\out\artifacts\wms_Web_exploded" debug="1" reloadable="true"/> <!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
--> <!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t &quot;%r&quot; %s %b" /> </Host>

经测试有效,使用的Tomcat7.0,但是对于新添加的class不起作用,只有对已经存在的Java类修改了,会立马reload。