Tomcat取消自动重启的方法(开发期的热加载)
2015-06-08 11:36
696 查看
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
相关文章推荐
- 解决tomcat在进行大并发请求时,出现内存溢出的问题
- 118 nginx+tomcat+session共享
- tomcat初识
- jetty(maven-jetty-plugi)端口/tomcat (tomcat-maven-plugin)端口
- about tomcat ssl
- tomcat web.xml配置
- 集成Tomcat插件到Eclipse
- 119 Nginx和Tomcat负载均衡实现session共享
- tomcat重启脚本
- Tomcat中JVM内存溢出及合理配置
- Tomcat优化实践——网站运维
- Linux下Tomcat重新启动
- 启动tomcat后struts框架报异常严重: Exception starting filter struts2 Unable to load configuration. - Class: java.net.PlainSocketImpl
- The Tomcat server configuration at \Servers\Tomcat v5.5 Server at localhost-config is missing
- tomcat SSL配置
- 【原创】记一次线上Tomcat故障排查-struts2 “bug”导致tomcat阻塞
- [Servlet]研究ServletContext对象
- tomcat服务器解析(六)-- Acceptor
- 117 Tomcat 系统架构与设计模式,第 1 部分: 工作原理
- JMX监控centos下的tomcat