目前在做一个网站项目,使用MyEclipse+Tomcat,每次修改项目源代码时,都需要重启tomcat、重新导出项目到webapps文件夹或者重新部署,太麻烦。于是研究了一下tomcat如何设置成热启动,即修改源代码时不需要重启tomcat服务器。方法如下:
第一步:
Tomcat安装目录下,修改 conf/server.xml 中的 Host 配置,设置其reloadable属性为true,即在Host标签中添加reloadable="true"这一句,重启Tomcat使配置文件生效。
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<!-- 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 -->
<!--
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>
-->
</Host>
加上reloadable="true"之后
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false" 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 -->
<!--
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>
-->
</Host>
第二步:
在conf文件夹中的web.xml文件中添加
<init-param>
<param-name>development</param-name>
<param-value>true</param-value>
</init-param>
............................
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<init-param>
<param-name>development</param-name>
<param-value>true</param-value>
</init-param>
</web-app>
第三步:
每次修改完了之后,重新部署一次生效
控制台会显示重新部署信息
OK,到此为止,配置结束,接下来每次修改源代码(包括servlet代码)后,都不需要重新启动tomcat了,但是貌似需要点击部署按钮重新部署一下项目。