不重啓tomcat服務器實現web工程熱部署

作web開發的通常都會有這樣的問題吧。就是須要把web工程發佈到tomcat服務器下面,能夠經過tomcat映射來解決,但我以爲仍是有點不太好, 在修改完java類的時候有時會遲疑,這時便會想是否是本身寫的代碼仍是不太對。今天從網上找到一個新的方法,這種方法能夠動態的加載修改過 的.class文件,讓其實從新加載到服務器下面。
     測試的環境爲:
     myeclipse8.5
     jdk1.6
    
JavaRebel插件
     對於javaRebel看開源社區中的描述爲:
      javaRebel (JRebel)是一個JVM的插件 (非開源),給Java帶來了Ruby和PHP風格的動態從新裝載類特性,JavaRebel容許一個應用程序(獨立的或運行在應用服務器上的應用)從新裝載在運行過程當中(on the fly)發生的大多數類變化,包括增長或刪除方法和域。

javarebel 可使Java class文件從新加載速度更快,節省了開發時間,並且修改了配置文件和在class中加入任何的代碼都不用重啓服務器,徹底支持Annotation reloading.(Annotation動態載入),當classes字節碼文件從新載入的時,它會在觸發寄存器監聽,容許使用自定義的方法去處理。 java

      因此當修改過代碼後就會觸發監聽而後修改完後從新加載,實現真正意義上的熱部署! web

      配置: windows

      在windows/preferences/MyEclipse/Servers/Tomcat/Tomcat 6.x/點擊JDK後會出在右邊出現一個Optional Java VM arguments文本框,而後在裏面輸入如下代碼: tomcat

     -noverify  
     -javaagent:E:/src/jrebel-3.0-M1/jrebel.jar  
     -Drebel.dirs=E:\frameWork\strutsWork\SpringMVC2\WebRoot\WEB-INF\classes 服務器


     其中javaagent爲jrebel.jar所放的目錄,drebel.dirs爲工程目錄中.編譯事後生成.class文件生成的目錄。這樣配置完成以後,點應用。從新啓動tomcat服務器,後臺會出現如下文字: eclipse

      JRebel 3.0-M1 (200910151623)
     (c) Copyright ZeroTurnaround, Ltd, 2007-2009. All rights reserved.

     A rough estimate: Over the last 1 days JRebel
     prevented the need for at least 3 redeploys/restarts.
     Using industry standard build and redeploy times,
     JRebel saved you between 0.1 and 0.2 hours.

     This product is licensed to  Java Hack Organization
     for unlimited number of developer seats on site. 測試


JRebel: Directory 'E:\frameWork\strutsWork\SpringMVC2\WebRoot\WEB-INF\classes' will be monitored for class changes.//會監測類的變化 ui


這樣完成以後若是你修改了類就會出現這麼一句話: spa

JRebel: Reloading class 'com.fhqihwcw.tag.HasPermission'.//這是我測試用的類 插件

就是從新加載你的.class文件無須再去從新啓動服務器。。。。。修改代碼和新加方法都會進行從新部署!

相關文章
相關標籤/搜索