DCE VM 官网主页:http://ssw.jku.at/dcevm/
DCE VM 补丁介绍:http://ssw.jku.at/dcevm/binaries/
淘宝JAVA中间件团队博客中相关介绍文章:
http://rdc.taobao.com/team/jm/archives/641
提供windows 版本的补丁下载:dcevm-0.2-win.jar
本文讲述如何安装DCEVM补丁实现debug模式下的热部署
以windows 操作系统为例,其他操作系统,具体可参照上面给出相关介绍的链接
【一】补丁的安装步骤
>java -jar dcevm-0.2-win.jar
回车后会看到下图:
选择需要安装该补丁的jdk,点击按钮Install即可。
【二】配置文件的修改
需要修改tomcat的发布策略,以便验证该补丁安装是否成功,先打开server->tomcat的配置页面:
如上图选择Never publishing automatically这个选项,保存退出即可。
然后在eclipse的tomcat下,以debug的模式发布一个项目,现在对java文件的任何修改将会直接反映到应用程序中去,非常方便我们日常程序开发过程中的调试工作。
【三】异常问题的处理
打上补丁,如果项目启动报如下错:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
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换成了新的版本:asm-3.3.1.jar、cglib-nodep-2.2.jar,然后再启动一切就正常了。
asm、cglib各版本匹配注意点:
- asm 1.5.3.jar 匹配 cglib-2.1.3.jar
- asm-2.X.jar asm-3.x.jar 匹配 cglib-nodep-2.1_3.jar
- 相关jar下载:asm-3.3.1.jar cglib-nodep-2.2.jar
原创文章,转载请注明: 转载自micmiu – 软件开发+生活点滴[ http://www.micmiu.com/ ]
0 条评论。