Tomcat比较轻快,非常适用于开发阶段使用。一般我们看官方文档,会认为在server.xml中进行如下配置即可支持热部署:
<Context path="/myApp" docBase="E:\workspace\myProject\web" reloadable="true"/>
但其实这样配置后,修改java代码会自动重启Tomcat服务器的,并非真正的热部署。修改多个文件的话,需要多次保存,保存一次就重启一次,非常之烦。
为了解决这个问题,google了好多网页,终于在某位大侠的博客(时间太久忘了原文地址了)里头找到了答案,修改配置如下:
<Context path="/myApp" docBase="E:\workspace\myProject\web" reloadable="false" crossContext="true"/>
这样修改java代码,就不会自动重启Tomcat,而且能及时生效了!
不过正如liuhanjun朋友评论中指出的,在追加方法或类变量时,还是会提示重启。
我的开发环境是eclipse3.7+Tomcat7.0.23,在eclipse里头启停的服务器,Server location我选的是Use Tomcat Installation,Deploy path是webapp,Server Options下勾选了Serve modules without publishing。
1 楼
royboy
2012-03-06
正好找个这个呢,谢谢了
2 楼
liuhanjun
2012-03-28
tomcat7不知道,tomcat6这样不行,如果只是修改class中方法的实现,没问题,如果追加方法,追加成员变量,照样需要重启。tomcat7真的可以么?
3 楼
linhao315
2012-04-06
liuhanjun 写道
tomcat7不知道,tomcat6这样不行,如果只是修改class中方法的实现,没问题,如果追加方法,追加成员变量,照样需要重启。tomcat7真的可以么?
tomcat7也不行,独立服务器和嵌入式都试过了,eclipse会要求重启。。。