Hot Swap failed:add method not implemented

This new feature encapsulates the ability to substitute modified code in a running application through the debugger APIs. 
——'HotSwapping' using JVM:http://www.jug.mk/blogs/ipenov/entry/hotswapping_using_jvm

目前HotSwap只支持对方法body的修改,不支持对类和方法签名的修改(比如修改类名,方法名,方法参数,添加或者删除一个方法,增加、删除类文件等,是不能够热部署到服务上的。这时候需要停止服务器重新部署后再启动,就不会出现上面的提示了等)。考虑这些限制,也是有理由的,替换类定义,就需要新类和旧类之间有一个关联,这里关联就是类的全名(或许还有其他信息),类名都改了,就不知道替换哪个类了。至于方法签名的修改,应该是考虑到运行时方法的调用,通过方法签名替换已有的方法调用。 

网上很多人误解热部署和热加载的概念,所以造成乱配置的行为,这里提示一下.
热部署:就是容器状态在运行的情况下部署或者重新部署整个项目.在这种情况下一般整个内存会清空,重新加载.简单来说就是Tomcat或者其他的web服务器会帮我们重新加载项目.这种方式可能会造成sessin丢失等情况.
热加载:就是容器状态在运行的情况下重新加载改变编译后的类.在这种情况下内存不会清空,sessin不会丢失,但容易造成内存溢出,或者找不到方法。因为内存无法转变成对像. 一般改变类的结构和模型就会有异常,在已经有的变量和方法中改变是不会出问题的。在中模式最好是在调试过程中使用,免得整个项目加载.
debug模式都支持热加载.很方便使用.
——IDEA TOMCAT WEB开发 SSH开发 修改类不重启 热部署 热加载 IDEA8:
http://3000pzj.javaeye.com/blog/503222

部署在项目开发过程中是常有的事,特别是debug的时候。但是如果每次fix一个bug都要把整个项目重新部署一遍以便测试fix的效果或者继续debug其他bug,那对开发人员来说无疑是一大噩梦。不过谁都不想噩梦连连,有了JVM的hotSwap以及Intellij Idea对debug,hotSwap的支持,从此美梦相伴(夸张了点:))。今天通过这篇文章介绍一下通过对Intellij Idea热部署的设置达到最方便的最高效的debug效果。
我想在介绍具体设置之前,不妨了解一些背景知识和概念。
HotSwap:“HotSwap”是JPDA(Java Platform Debugger Architecture)中的一个特性,JPDA增强是自Java 2 SDK1.4新增的功能。HotSwap允许将JVM中的类定义替换为新的类定义,这就允许开发人员在debug时,将修改过的class替换JVM中旧有的class,无需重新启动服务器。

  • 15
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值