轉:修改類不重啓tomcat 自動加載項目

能夠修改類不用重啓Tomcat加載整個項目(手工啓動) 
    配置reloadable=true(自動重載) 
    使用Debug模式,前提是僅限於局部修改。(修改類不用重啓--熱加載) 
(reloadable:若是這個屬性設爲true,tomcat服務器在運行狀態下會監視在WEB-INF/classes和WEB-INF/lib目錄下class文件的改動,若是監測到有class文件被更新的,服務器會自動從新加載Web應用。 

在開發階段將reloadable屬性設爲true,有助於調試servlet和其它的class文件,但這樣用加劇服務器運行負荷,建議在Web應用的發佈階段將reloadable設爲false。
java

)
    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加載的項目就少了,相應也就快了。
web

 

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

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

    注:docBase="",中的內容爲項目的WebRoot目錄服務器

 而後在把MyEclipse server中 tomcat 的開發模式設置debug模式,ok肯定。app

 而後啓動tomcat,隨意修改項目中的一個文件,就會看到Console窗口從新加載項目,ok,搞定...webapp

(問題:設置debug模式修改代碼後會出現「hot code replace failed」錯誤,不用管,繼續就ok,若是不想看見,讓錯誤不提示就ok,緣由是debug模式代碼正在用,因此replase失敗,但實際上是成功的!而設置run模式就不報錯,同時在修改代碼後也是熱部署的,刷新頁面便可!)jsp

 

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

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

3.自動編譯JSP 
build Automatically 

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

相關文章
相關標籤/搜索