[心得]Run-Jetty-Run加DCEVM改程式免重啟
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
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.164.11.162
※ 編輯: rexhuang 來自: 1.164.11.162 (07/16 01:45)
推
07/16 16:21, , 1F
07/16 16:21, 1F
→
07/27 00:22, , 2F
07/27 00:22, 2F
→
07/27 00:23, , 3F
07/27 00:23, 3F
→
07/31 21:10, , 4F
07/31 21:10, 4F
→
07/31 21:12, , 5F
07/31 21:12, 5F
→
07/31 21:13, , 6F
07/31 21:13, 6F
推
08/02 20:50, , 7F
08/02 20:50, 7F
Eclipse 近期熱門文章
PTT數位生活區 即時熱門文章