[心得]Run-Jetty-Run加DCEVM改程式免重启

楼主: rexhuang (BlueCancer)   2012-07-16 01:02:37
Run Jetty Run:
http://code.google.com/p/run-jetty-run/
DCEVM:
http://ssw.jku.at/dcevm/
Run-Jetty-Run plug-in目前是由国内的TonyQ接手开发
DCEVM是奥地利的Thomas Wuerthinger开发
(现在好像是Oracle工程师 https://labs.oracle.com/people/wuerthinger)
小弟我也是听了TonyQ的演讲才知道有这两个好物
如果您的系统有用到xerces.jar,因为会和Jetty冲到,需要把您系统的xerces.jar移除掉
否则AP启动时会有以下错误讯息
java.lang.AbstractMethodError: org.apache.xerces.dom.DeferredDocumentImpl.set
DocumentURI(Ljava/lang/String;)V
找到一篇文章说也可以在JVM启动时加以下参数(我没试过)
-Djavax.xml.parsers.DocumentBuilderFactory=
com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl
( http://blog.chenlb.com/2010/11/abstract-method-error-xerces.html )
另外asm、cglib也要换成新的版本 ( http://tinyurl.com/7kntkdh )
目前试的结果要用Debug As启动才能hot-deploy
google一下好像这种hotswap的技术好像只能用在JVM启动时是debug mode?
试了一下JAVA和JSP修改都不用重启就可以看到结果
如果Eclipse是搭配Tomcat去跑,Publishing要设定成Never publishing automatically
另外,我本来把DCEVM装在JDK 7失败,改用JDK 6就OK,没在试其他JDK 7
DCEVM官方并不建议用在Production
除了DCEVM外,有些人是用JRebel
DCEVM是从VM层下手,JRebel是从ClassLoader下手,理论上DCEVM效能会比较好
小弟我也没用过JRebel,无法实际比较
一点心得分享
P.S.如果对DCEVM的运作原理了解更多,可以看以下讨论串
http://old.nabble.com/Enhanced-Class-Redefinition-JEP-td32152317.html
作者: MiaShopgirl ( )   2012-07-16 16:21:00
推~Jetty
作者: TonyQ (自立而后立人。)   2012-07-27 00:22:00
这是上次去 TWJUG 讲得内容吧 XD基本上这还是开发用比较好 production 多少会拖慢效能
楼主: rexhuang (BlueCancer)   2012-07-31 21:10:00
不好意思,今天才看到TonyQ的推文~~~是TWJUG没错~~~^^尤其我们用WAS,下上会等死人,用ND版还要重新Deploy..@.@也谢谢TonyQ及一些高手们无私的分享经验,学到许多~~^^
作者: phstudy (study)   2012-08-02 20:50:00
有类似JRebel的Remoting sync的功能吗?

Links booklink

Contact Us: admin [ a t ] ucptt.com