Java HotSpot dcevm 在debug模式下的热部署

[color=red]blog迁移至[/color]:[url=http://www.micmiu.com]http://www.micmiu.com[/url]

DCE VM 官网主页:[url=http://ssw.jku.at/dcevm/]http://ssw.jku.at/dcevm/[/url]
DCE VM 补丁介绍:[url=http://ssw.jku.at/dcevm/binaries/]http://ssw.jku.at/dcevm/binaries/[/url]
淘宝JAVA中间件团队博客中相关介绍文章:
[url=http://rdc.taobao.com/team/jm/archives/641]http://rdc.taobao.com/team/jm/archives/641[/url]
提供windows 版本的补丁下载:[url=http://dl.iteye.com/topics/download/3769671a-affd-30f6-b74e-abf2fab4781a]dcevm-0.2-win.jar[/url]

[size=x-large][color=blue]本文讲述如何安装DCEVM补丁实现debug模式下的热部署[/color][/size]
[b]以windows 操作系统为例,其他操作系统,具体可参照上面给出相关介绍的链接[/b]
[color=blue][size=large]【一】补丁的安装步骤[/size][/color]
>java -jar dcevm-0.2-win.jar
回车后会看到下图:

[img]http://dl.iteye.com/upload/attachment/418764/4afaed60-6df6-3ca7-a30b-0f1e7be6e6bb.jpg[/img]
选择需要安装该补丁的jdk,点击按钮Install即可。
[color=blue][size=large]【二】配置文件的修改[/size][/color]
需要修改tomcat的发布策略,以便验证该补丁安装是否成功,先打开server->tomcat的配置页面

[img]http://dl.iteye.com/upload/attachment/418766/041d147f-103b-3bcd-99bd-0e50f9ed3680.jpg[/img]

[img]http://dl.iteye.com/upload/attachment/418768/29013412-c730-3cc8-acfa-d0e7d3f6e604.jpg[/img]
如上图选择[color=red]Never publishing automatically[/color]这个选项,保存退出即可。
然后在eclipse的tomcat下,以debug的模式发布一个项目,现在对java文件的任何修改将会直接反映到应用程序中去,非常方便我们日常程序开发过程中的调试工作。
[color=blue][size=large]【三】异常问题的处理[/size][/color]
打上补丁,如果项目启动报如下错:

Caused by:
java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(Z)V
at net.sf.cglib.core.DebuggingClassWriter.<init>(DebuggingClassWriter.java:47)
at net.sf.cglib.core.DefaultGeneratorStrategy.getClassWriter(DefaultGeneratorStrategy.java:30)
at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:24)
at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)
at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:145)
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:117)
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108)
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:104)
at net.sf.cglib.proxy.Enhancer.<clinit>(Enhancer.java:69)
at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.getProxyFactory(CGLIBLazyInitializer.java:117)
at org.hibernate.proxy.pojo.cglib.CGLIBProxyFactory.postInstantiate(CGLIBProxyFactory.java:43)
..............................................
..............................................


这个问题可能是因为该补丁和asm、cglib相关的jar包发生了冲突,我把项目里的asm、cglib换成了新的版本:[color=blue]asm-3.3.1.jar、cglib-nodep-2.2.jar[/color],然后再启动一切就正常了。

[size=medium]asm、cglib各版本匹配注意点:[/size]
[list]
[*][color=blue]asm 1.5.3.jar 匹配 cglib-2.1.3.jar[/color]
[*][color=blue]asm-2.X.jar asm-3.x.jar 匹配 cglib-nodep-2.1_3.jar[/color]
[*]相关jar下载:[url=http://dl.iteye.com/topics/download/84396b92-b1a2-3ba5-8414-ecf781b6388f]asm-3.3.1.ja[/url] [url=http://dl.iteye.com/topics/download/25973534-2808-3af6-a8e2-751c12e1bf51]cglib-nodep-2.2.jar[/url]
[/list]

--------------------------------分--------------------------------隔 --------------------------------线--------------------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值