网上转载(关于 hot code replace fail 问题)

eclipse/myeclipse 进java代码的开发,特别是web应用开发,一般情况下,修改配置文件(如web.xml)重启服务器

才生效.而修改jsp页面,则不用重启.

若修改的是java文件,有两种情况:

1.小规模的修改,没有改变类的块结构,不用重启服务器,也可以立即生效.(前提是同步发布,即要勾上菜单

project->build automatically)

2.修改了类的结构(如增加或删除类的方法,字段).如果是这种情况,myeclipse会有"hot code replace fail"的提

示,和失败的原因的说明(如add method not implemented, scheme change not implemented 等),并且提

示重新启动服务器.这种情况要重启服务器才可以生效.

3.还有一种情况,对java文件进行小的修改(如 代码中不重要的地方加一个空格 )然后保存,myeclipse也会提示

hot code replace fail.这种情况遇到的几率很小. 这种情况的很可能是服务器(如tomcat)下面发布了多个web

应用程序,而所修改的类的名字在多个web应用中存在(如 有app1和app2两个应用, app1中有个类

com.company.LoginAction, app2中也有个类com.company.LoginAction. 修改的是app1中的LoginAction

).

个人猜测:jvm在进行hot code replace的之前,将所修改的类(app1中的LoginAction)与另外一个应用中的同名

类(app2中的LoginAction)对比,发现两者有结构上的差异,于是认为该类的改变很大,不能够进行hot code

replace.

有种简单的方法可以验证,是否属于第三种情况.只部署一个工程在服务器下,启动后,再修改java类,如果是小的修

改,这个时候myeclipse就不会再有hot code replace fail 的提示了.


今天突然遇到这个问题....以前一直好好的,在tomact的debug模式下选中工具栏project---build

automatically还是不能解决问题
按以上说法试了试 果 然是第3个原因造成滴 把webapp下的项目情空 问题瞬间解决
哎....汗啊 整得我头都昏了 网络资源果然强势啊

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值