[心得]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