Tomcat取消自动重启的方法(开发期的热加载)

1.面临的问题:
  Eclipse有点非常不友好,就是不管我怎么修改Java代码,哪怕只有仅仅一行代码都需要重新启动,才能使修改代码生效。
由于我们项目较大,这点严重影响了我的工作效率,本文通过eclipse下tomcat开发和发布web程序时,
对一些Java代码一般修改(不是增减方法、变量,或变更名称等'较巨大'的操作),可以不必重启机器的设置。

2.面临的问题的本质:
  在使用Eclipse+Tomcat开发Java项目的时候常常会碰到这样的情况,已修改Java文件Tomcat就会自动重启,接下来就是漫长的等待服务重启完毕。那其实大多数的Java文件修改是没有必要重启服务的,只有一些特定的Java文件,比如说只有重启服务的时候才会调用的Java代码才需要重启服务。 
一修改java代码就重新部署(console有明显提示),且会话失效,设置服务器为debug模式(debug on server),否则修改不起作用。 
什么时候应该redeploy,什么时候应该重启tomcat。如果项目大,redeploy和重启tomcat的系统开销是很大的,经常要等很长时间。 
Tomcat运行时动态重载类, 实现重载功能的测试jsp。当系统中有很多类时,如果开启了Tomcat的reloadable=true,那么每当相关文件改变时,Tomcat会停止 web app并释放内存,然后重新加载web app。这实在是个耗时的工程。如果能有只重载某几个类的功能,将极大的缩减调试的时间,提高开发速度。

3.方法:
  有人说:把reloadable设置成true.其实这个只是tomcat自动帮助你重启,而无需你手动重启而已,并不能达到我们想要的效果.我们想要的是真正做到即时生效,恰恰需要讲此选项设置成false并用debug模式启动tomcat即可,所以我们说是开发期的热加载,

4.真正的解决方法:
  首先需要设置server.xml中的Context reloadable="true",true自动重载(不是重启!), false手动重载。(如果项目在Tomcat中,应该去Tomcat目录设置。) 
Eclipse EE 设置方式,文件设置:server.xml > reloadable="false" 界面设置:Server > Modules > Edit > webapp > Auto reloading enabled > false 

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值