修改Java文件不用重启Tomcat服务----热部署、热加载(转载)
2015-08-09 18:45
621 查看
原博文网址:http://blog.csdn.net/feilongjian001/article/details/8576392
可以修改类不用重启Tomcat加载整个项目(手工启动)
1.配置reloadable=true(自动重载)
2.使用Debug模式,前提是仅限于局部修改。(修改类不用重启--热加载)
在使用Eclipse+Tomcat开发Java项目的时候常常会碰到这样的情况,已修改Java文件Tomcat就会自动重启,接下来就是漫长的等待服务重启完毕。那其实大多数的Java文件修改是没有必要重启服务的,只有一些特定的Java文件,比如说只有重启服务的时候才会调用的Java代码才需要重启服务。
一修改java代码就重新部署(console有明显提示),且会话失效,设置服务器为debug模式(debug _disibledevent=>Tomcat会停止web app并释放内存,然后重新加载web app.这实在是个耗时的工程. 如果能有只重载某几个类的功能,将极大的满足我这个即时调试狂。
1.修改类不重启Tomcat(不用手动重启)
首先需要设置server.xml中的Context reloadable="true", true自动重载(不是重启!), false手动重载。(如果项目在Tomcat中,应该去Tomcat目录设置。)
Eclipse EE 设置方式,文件设置:server.xml > reloadable="false" 界面设置:Server > Modules > Edit > webapp > Auto reloading enabled > false
开发阶段通常都设为true,方便开发,在发布阶段应该设置为false,提高应用程序的访问速度。可以选择把其他不相关的项目先从webapps移出,这样tomcat加载的项目就少了,相应也就快了。
2.修改类不重启Tomcat有两种方式:热部署、热加载
热部署:容器状态在运行时重新部署整个项目。这种情况下一般整个内存会清空,重新加载,这种方式可能会造成sessin丢失等情况。tomcat 6确实可以热部署了,而且会话也没丢.
热加载:最好是在调试过程中使用,免得整个项目加载,Debug模式支持热加载。容器状态在运行时重新加载改变编译后的类。在这种情况下内存不会清空,sessin不会丢失,但容易造成内存溢出,或者找不到方法。
一般改变类的结构和模型就会有异常,在已经有的变量和方法中改变是不会出问题的(Eclipse、MyEclipse8、JBuilder、IntelliJ IDEA…)。
3.自动编译JSP
build Automatically
修改Tomcat源代码实现realoadable!不推荐
具体操作:
修改Java代码不让服务重启的方法有两个:
1、修改Tomcat的配置文件(tomcat-5.5.20\conf\Catalina\localhost目录下)
在配置中加入 reloadable="false"
<Context path="/"
reloadable="false"
docBase="F:\workspace\shpm3\shpm3-web"
workDir="F:\workspace\shpm3\work" />
2、也可以通过Eclipse上设置实现上述配置文件的修改
Eclipse的工程名右键: properties->Tomcat->General->Make
this context as reloadable(reloadable="true")不要选中
Eclipse的工程名右键:Tomcat project->Update
Context Definition
出处:http://quxiangui.blog.163.com/blog/static/993948720121026105918350/
可以修改类不用重启Tomcat加载整个项目(手工启动)
1.配置reloadable=true(自动重载)
2.使用Debug模式,前提是仅限于局部修改。(修改类不用重启--热加载)
在使用Eclipse+Tomcat开发Java项目的时候常常会碰到这样的情况,已修改Java文件Tomcat就会自动重启,接下来就是漫长的等待服务重启完毕。那其实大多数的Java文件修改是没有必要重启服务的,只有一些特定的Java文件,比如说只有重启服务的时候才会调用的Java代码才需要重启服务。
一修改java代码就重新部署(console有明显提示),且会话失效,设置服务器为debug模式(debug _disibledevent=>Tomcat会停止web app并释放内存,然后重新加载web app.这实在是个耗时的工程. 如果能有只重载某几个类的功能,将极大的满足我这个即时调试狂。
1.修改类不重启Tomcat(不用手动重启)
首先需要设置server.xml中的Context reloadable="true", true自动重载(不是重启!), false手动重载。(如果项目在Tomcat中,应该去Tomcat目录设置。)
Eclipse EE 设置方式,文件设置:server.xml > reloadable="false" 界面设置:Server > Modules > Edit > webapp > Auto reloading enabled > false
开发阶段通常都设为true,方便开发,在发布阶段应该设置为false,提高应用程序的访问速度。可以选择把其他不相关的项目先从webapps移出,这样tomcat加载的项目就少了,相应也就快了。
2.修改类不重启Tomcat有两种方式:热部署、热加载
热部署:容器状态在运行时重新部署整个项目。这种情况下一般整个内存会清空,重新加载,这种方式可能会造成sessin丢失等情况。tomcat 6确实可以热部署了,而且会话也没丢.
热加载:最好是在调试过程中使用,免得整个项目加载,Debug模式支持热加载。容器状态在运行时重新加载改变编译后的类。在这种情况下内存不会清空,sessin不会丢失,但容易造成内存溢出,或者找不到方法。
一般改变类的结构和模型就会有异常,在已经有的变量和方法中改变是不会出问题的(Eclipse、MyEclipse8、JBuilder、IntelliJ IDEA…)。
3.自动编译JSP
build Automatically
修改Tomcat源代码实现realoadable!不推荐
具体操作:
修改Java代码不让服务重启的方法有两个:
1、修改Tomcat的配置文件(tomcat-5.5.20\conf\Catalina\localhost目录下)
在配置中加入 reloadable="false"
<Context path="/"
reloadable="false"
docBase="F:\workspace\shpm3\shpm3-web"
workDir="F:\workspace\shpm3\work" />
2、也可以通过Eclipse上设置实现上述配置文件的修改
Eclipse的工程名右键: properties->Tomcat->General->Make
this context as reloadable(reloadable="true")不要选中
Eclipse的工程名右键:Tomcat project->Update
Context Definition
出处:http://quxiangui.blog.163.com/blog/static/993948720121026105918350/
相关文章推荐
- Tomcat全攻略
- 《how tomcat work》 搬运工 Chapter 5: Container
- win7+ii7+tomcat7运行javaWeb开发的程序
- win2008 IIS与tomcat整合
- 花生壳如何发布tomcat网站到外网?
- 远程部署tomcat工程到Linux服务器
- Tomcat组件的生命周期Lifecycle
- Tomcat源码解析(一)下载源码与导入eclipse
- Tomcat 7 的七大新特性
- 00_02启动tomcat时 一闪而过解决方法
- 00_01Tomcat服务器配置简介
- Installing Tomcat 8 on OS X 10.10 Yosemite
- tomcat配置
- Apache + Tomcat 负载均衡 session复制
- solr5.2.1环境搭建
- tomcat环境变量的配置
- WebLogic、WebSphere、JBOSS、Tomcat之间的区别
- TOMCAT 异常启动的情况
- NetBeans启动Tomcat报“'127.0.0.1' 不是内部或外部命令”启动失败
- Tomcat启动分析(我们为什么要配置CATALINA_HOME环境变量)