论坛首页 Java企业应用论坛

提高开发效率之tomcat免重启(随意更改java代码)

浏览 36668 次
精华帖 (2) :: 良好帖 (7) :: 新手帖 (0) :: 隐藏帖 (8)
作者 正文
   发表时间:2010-12-31  
eclipse3.3.2装wtp插件的启动eclipse出错
The Eclipse executable launcher was unable to locate its companion shared library
0 请登录后投票
   发表时间:2010-12-31  
hotdeploy, 这方面tomcat远没glassfish做得好
0 请登录后投票
   发表时间:2010-12-31  
你这个对配置文件支持怎么样?
jRebel也可以有类似的功能,还不用修改java内容
0 请登录后投票
   发表时间:2010-12-31  
hustlxjaw 写道
你这个对配置文件支持怎么样?
jRebel也可以有类似的功能,还不用修改java内容


目前,JRebel可以动态地增加新建的类或资源,DCVM 暂时没有看到。

说句是在话,楼主你已经在不少地方发了吧!卷爷是不是找你谈过这个问题,你懂的!

0 请登录后投票
   发表时间:2011-01-01  
试了一下,不用修改eclipse配置也可以直接使用。安装完就可以了。
0 请登录后投票
   发表时间:2011-01-01  
tomcat 本来就有个热部署的选项, 类似auto_reload=true就行了
resin也默认有自动检测的功能
...
其他如浮云
0 请登录后投票
   发表时间:2011-01-01  
mercyblitz 写道
hustlxjaw 写道
你这个对配置文件支持怎么样?
jRebel也可以有类似的功能,还不用修改java内容


目前,JRebel可以动态地增加新建的类或资源,DCVM 暂时没有看到。

说句是在话,楼主你已经在不少地方发了吧!卷爷是不是找你谈过这个问题,你懂的!


卷爷?我不知道是什么意思,还有,我只在这地方发的,我只是听说到这个东西。所以贴出来供大家学习而已。
0 请登录后投票
   发表时间:2011-01-01  
sswh 写道
jorneyR 写道
使用WTP写Web工程,什么配置信息都不用修改,把WTP的autoloading去掉,Debug启动Tomcat就可以实现热加载了,不用这么麻烦的。


你增加一个方法或者字段试试看。不需要重启才怪。

debug状态下,只有修改方法内的代码,才不需要重启。

刚刚试了下,如果添加一个新的方法或者新加入一个新的Servlet,不需要重启Tomcat,会自动加载上下文的变化(这个跟重启还是有很大区别的):
Jan 1, 2011 7:12:22 AM org.apache.catalina.core.StandardContext reload
INFO: Reloading this Context has started,
这个功能好像是每隔10秒就会扫描一次,加载新的变化,但与一发现改变就加载比起来,慢了好多。
0 请登录后投票
   发表时间:2011-01-01  
热部署: 就是容器状态在运行的情况下部署或者重新部署整个项目.在这种情况下一般整个内存会清空,重新加载.简单来说就是Tomcat或者其他的web服务器会帮我们重新加载项目.这种方式可能会造成sessin丢失等情况.

热加载: 就是容器状态在运行的情况下重新加载改变编译后的类.在这种情况下内存不会清空,sessin不会丢失,但容易造成内存溢出,或者找不到方法。因为内存无法转变成对像. 一般改变类的结构和模型就会有异常,在已经有的变量和方法中改变是不会出问题的。在中模式最好是在调试过程中使用,免得整个项目加载.

From: http://hi.baidu.com/shiliangshuai/blog/item/12341cce4449d832b700c8e0.html
0 请登录后投票
   发表时间:2011-01-01  
HotSwap:“HotSwap”是JPDA(Java Platform Debugger Architecture)中的一个特性,JPDA增强是自Java 2 SDK1.4新增的功能。HotSwap允许将JVM中的类定义替换为新的类定义,这就允许开发人员在debug时,将修改过的class替换JVM中旧有的class,无需重新启动服务器。不过,目前HotSwap只支持对方法body的修改,不支持对类和方法签名的修改(比如修改类名,方法名,方法参数等)。考虑这些限制,也是有理由的,替换类定义,就需要新类和旧类之间有一个关联,这里关联就是类的全名(或许还有其他信息),类名都改了,就不知道替换哪个类了。至于方法签名的修改,应该是考虑到运行时方法的调用,通过方法签名替换已有的方法调用。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics