bjtdeyx

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            1 隨筆 :: 1 文章 :: 3 評論 :: 0 Trackbacks

          可以修改類不用重啟Tomcat加載整個項目(手工啟動) 
              配置reloadable=true(自動重載) 
              使用Debug模式,前提是僅限于局部修改。(修改類不用重啟--熱加載) 

              Tomcat輕小,而WebLogic、WebSphere對硬件要求比較高,吃內存、耗CUP。JBoss類更改不會重啟(傳說,我沒用過,不知道!)。 

              在使用Eclipse+Tomcat開發Java項目的時候常常會碰到這樣的情況,已修改Java文件Tomcat就會自動重啟,接下來就是漫長的等待服務重啟完畢。那其實大多數的Java文件修改是沒有必要重啟服務的,只有一些特定的Java文件,比如說只有重啟服務的時候才會調用的Java代碼才需要重啟服務。 

              一修改java代碼就重新部署(console有明顯提示),且會話失效,設置服務器為debug模式(debug on server),否則修改不起作用. 

              什么時候應該redeploy,什么時候應該重啟tomcat。如果項目大,redeploy和重啟tomcat的系統開銷是很大的,經常要等很長時間。 

              Tomcat運行時動態重載類, 實現重載功能的測試jsp。當系統中有很多類時,如果開啟了Tomcat的reloadable=true,那么每當相關文件改變時,Tomcat會停止 web app并釋放內存,然后重新加載web app.這實在是個耗時的工程. 如果能有只重載某幾個類的功能,將極大的滿足我這個即時調試狂。 

          1.修改類不重啟Tomcat(不用手動重啟) 
              首先需要設置server.xml中的Context reloadable="true", true自動重載(不是重啟!), false手動重載。(如果項目在Tomcat中,應該去Tomcat目錄設置。) 
              Eclipse EE 設置方式,文件設置:server.xml > reloadable="false" 界面設置:Server > Modules > Edit > webapp > Auto reloading enabled > false 
              開發階段通常都設為true,方便開發,在發布階段應該設置為false,提高應用程序的訪問速度。可以選擇把其他不相關的項目先從webapps移出,這樣tomcat加載的項目就少了,相應也就快了。


          這里是重點:修改tomcat  conf目錄下的server.xml,添加:

          Xml代碼   
          1. <Context path="/struts2" docBase="D:\workspace\lee_struts2\WebRoot" reloadable="true"/>  

              注:docBase="",中的內容為項目的WebRoot目錄

           然后在把MyEclipse server中 tomcat 的開發模式設置debug模式,ok確定。

           然后啟動tomcat,隨意修改項目中的一個文件,就會看到Console窗口重新加載項目,ok,搞定...

          (問題:設置debug模式修改代碼后會出現“hot code replace failed”錯誤,不用管,繼續就ok,如果不想看見,讓錯誤不提示就ok,原因是debug模式代碼正在用,所以replase失敗,但其實是成功的!而設置run模式就不報錯,同時在修改代碼后也是熱部署的,刷新頁面即可!)

           

          2.修改類不重啟Tomcat有兩種方式:熱部署、熱加載 
              熱部署:容器狀態在運行時重新部署整個項目。這種情況下一般整個內存會清空,重新加載,這種方式可能會造成sessin丟失等情況。tomcat 6確實可以熱部署了,而且會話也沒丟. 
              熱加載:最好是在調試過程中使用,免得整個項目加載,Debug模式支持熱加載。容器狀態在運行時重新加載改變編譯后的類。在這種情況下內存不會清空,sessin不會丟失,但容易造成內存溢出,或者找不到方法。 

              一般改變類的結構和模型就會有異常,在已經有的變量和方法中改變是不會出問題的(Eclipse、MyEclipse8、JBuilder、 IntelliJ IDEA…)。 

          3.自動編譯JSP 
          build Automatically 

          修改Tomcat源代碼實現realoadable!不推薦~

          posted on 2012-02-22 11:32 心碎逍遙 閱讀(18154) 評論(1)  編輯  收藏

          評論

          # re: 修改類不重啟tomcat 自動加載項目 2013-10-09 16:47 sfds
          gfd  回復  更多評論
            


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 盐源县| 博客| 滕州市| 苗栗县| 唐海县| 灵武市| 津市市| 喀喇| 西丰县| 铅山县| 中宁县| 嘉义县| 乌苏市| 久治县| 陈巴尔虎旗| 台中市| 专栏| 滦平县| 栾城县| 东乡族自治县| 陈巴尔虎旗| 锡林浩特市| 故城县| 巴中市| 明光市| 湾仔区| 洪江市| 开化县| 剑河县| 榆树市| 海口市| 吉林省| 新疆| 芜湖市| 自贡市| 札达县| 东城区| 新河县| 磐石市| 溧水县| 靖江市|