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节点:

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

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

posted on 2017-04-10 14:01  jonney_wang  阅读(3175)  评论(0编辑  收藏  举报

导航