使用jreloader实现tomcat中class文件的热部署
来源:互联网 发布:50而知天命什么意思 编辑:程序博客网 时间:2024/06/08 18:16
在平常的项目开发或项目升级中,经常需要重启TOMCAT,如果是在本地重启,则会很耗费时间;如果是在生产上的服务器重启,不仅耗费时间,而且会影响系统的使用。如果能够在升级CLASS文件的时候,不需要重启TOMCAT,系统自动加载更新的class,实现热部署,则不仅能够节省升级时间,还不会影响系统的使用。
下面将详细说明使用jreloader在eclipse的TOMCAT和LINUX TOMCAT中实现CLASS文件热部署的详细过程。
1. 下载jreloader
jreloader-0.4.zip
http://dl.download.csdn.net/down10/20120415/a17ac4276a1beaa352d3769b421149f2.zip?response-content-disposition=attachment%3Bfilename%3D%22jreloader-0.4.zip%22&OSSAccessKeyId=9q6nvzoJGowBj4q1&Expires=1506919581&Signature=gmiKmmGj4GFC0aqyE8NZrqfZaQM%3D&user=brushli&sourceid=4227081
2. eclipse的TOMCAT中实现热部署
2.1 配置TOMCAT参数
注意:
javaagent这个参数配的是jreloader.jar这个文件的本地地址
jreloader.dirs这个参数配的是ECLIPSE中TOMCAT的部署地址
-noverify -javaagent:E:\workspace\tomcatHotDeploy\WebContent\WEB-INF\lib\jreloader.jar -Djreloader.dirs=E:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\tomcatHotDeploy/WEB-INF/classes
2.2 启动TOMCAT
看启动日志
说明jreloader配置成功。
2.3 关闭TOMCAT reload
2.4 启动TOMCAT
2.5 验证热部署
(1) 访问测试地址
http://localhost:8080/tomcatHotDeploy/loginController/login.do
TOMCAT打印出日志
(2) 修改日志输出为login2
可以看出jreloader会去重新加载LoginController这个class文件,但TOMCAT本身不会重新启动。
(3) 再次访问测试地址
http://localhost:8080/tomcatHotDeploy/loginController/login.do
发现后台打印出日志login2
3. LINUX的TOMCAT中实现热部署
3.1 修改脚本文件catalina.sh
/local/apache-tomcat-7.0.81/bin/catalina.sh
在cygwin=false上面一行添加JVM参数配置
JAVA_OPTS='-Xms256m -Xmx512m -noverify-javaagent:/local/apache-tomcat-7.0.81/webapps/tomcatHotDeploy/WEB-INF/lib/jreloader.jar-Djreloader.dirs=/local/apache-tomcat-7.0.81/webapps/tomcatHotDeploy/WEB-INF/classes'
注意:javaagent的值是jreloader.jar这个文件的地址,jreloader.dirs配置的是项目classes文件地址。
3.2 启动TOMCAT
打印出jreloader的启动日志,说明配置成功
3.3 热部署验证
(1) 访问测试地址
http://192.168.1.107:8080/tomcatHotDeploy/loginController/login.do
(2) 修改日志输出
(3) 再次访问测试地址
http://192.168.1.107:8080/tomcatHotDeploy/loginController/login.do
可见jreloader对CLASS文件LoginController.class进行重新加载,但TOMCAT并没有重新启动。
4.项目源码下载地址
http://download.csdn.net/download/brushli/10006177
5.总结
jreloader确实可以实现CLASS文件的热部署,但也存在一些缺陷,比如不能实现配置文件的热部署,除非加载该配置文件的CLASS也做了更新。但由于平常配置文件的改动比较少,JAVA文件的改动比较频繁,所以jreloader基本上可以满足项目开发或升级的热部署需求。
- 使用jreloader实现tomcat中class文件的热部署
- tomcat热部署实现文件下载
- tomcat的热部署和热加载(无需重启tomcat自动重新生成class文件)
- 使用Maven+Tomcat实现项目的热部署
- IntelliJ IDEA使用maven实现tomcat的热部署
- Eclipse中Tomcat如何实现热部署
- Eclipse中实现Tomcat热部署
- Eclipse中Tomcat如何实现热部署
- Eclipse中实现 Tomcat 热部署
- Tomcat中jsp热部署实现原理
- 使用maven实现tomcat热部署
- TOMCAT实现热部署
- Tomcat 实现热部署
- tomcat热部署的实现原理
- tomcat热部署的实现原理
- tomcat热部署的实现原理
- tomcat热部署的实现原理
- tomcat热部署的实现原理
- 【20171002】python_语言设计(4)文件
- ArcGIS for Android Runtime100 基本操作(一)——点线面测距离长度和面积
- 清 · 北 ·Ⅰ
- hdu 5044(树链剖分+区间标记小优化)
- 身份证号信息查询工具
- 使用jreloader实现tomcat中class文件的热部署
- java深入学习十二之文件
- 并查集算法解决Redundant Connection I&II
- a difficult problem FWT 模板
- runtime 简单的介绍
- idea搭建maven项目(spring + spring MVC + hibernate),希望对于初学者有帮助。
- QHY homework
- runtime 的使用
- Ubuntu安装冲突软件导致窗口顶部窗体消失,Unity启动器消失,桌面顶部任务栏消失,快捷键失效解决方法