`
sjsky
  • 浏览: 904448 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

    博客分类:
  • Java
阅读更多
    blog迁移至:http://www.micmiu.com

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文件的任何修改将会直接反映到应用程序中去,非常方便我们日常程序开发过程中的调试工作。
【三】异常问题的处理
打上补丁,如果项目启动报如下错:
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各版本匹配注意点:


--------------------------------分--------------------------------隔 --------------------------------线--------------------------------

  • 大小: 118.2 KB
  • 大小: 31.3 KB
  • 大小: 28.2 KB
3
0
分享到:
评论
1 楼 xuhang1128 2011-04-07  
请问楼主,如果servlet中增加一个非静态成员变量并且赋值,在doget方法里面能够得到这个新增成员变量的值吗

相关推荐

Global site tag (gtag.js) - Google Analytics