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