天天看點

配置tomcat自動加載改變的class檔案(無需重新開機tomcat)

不重新開機Tomcat有兩種方式:熱部署、熱加載 

  熱部署:容器狀況在運作時重新部署整個項目。這類環境下一般整個記憶體會清空,重新加載,這類方式 

  有可能會造成sessin丢失等環境。tomcat 6确實可以熱部署了,而且對話也沒丢. 

  熱加載:最好是在調試過程中使用,免患上整個項目加載,Debug标準樣式支援熱加載。容器狀況在運作時重 

  新加載轉變編譯後的類。在這類環境下記憶體不會清空,sessin不會丢失,但容易造成記憶體溢出,或者找不到方 

  法。一般轉變類的布局和模型就會有異常,在已經有的變量和方法中轉變是不會出問題的(Eclipse、 

  MyEclipse8、JBuilder、IntelliJ IDEA…)。 

  常用的一定第二種:熱加載了,設定如下! 

  在tomcat的conf中的server.xml中的host設定中添加<Context path="/test" 

  docBase="D:/develop/test" 

  debug="0" privileged="true" reloadable="true"/> 

  reloadable="true" !最重要 

  它内裡有很多屬性,意義如下: 

  1>path:指定拜候該web應用的URL進口; 

  2>docBase:指定web應用的檔案路徑,可以給定絕對路徑,也可以給定相對于<Host>的appBase屬性【預設 

  指向tomcat的webapps】的相對于徑;要是Web應用是個war檔案,則指定war檔案的路徑。 

  3>className:指定使成為事實Context元件的Java類的名字,這個Java類必須使成為事實org.apache.catalina.Context 

  接口,該屬性的預設值為org.apache.catalina.StandardContext。 

  4>reloadable:要是這個屬性設定為true,Tomcat伺服器在運作狀況下會監視在WEB-INF/classess和WEB- 

  INF/lib目次下的class檔案的改動,以及監視web應用的WEB-INF/web.xml檔案的改動。要是檢測到的class 

  檔案或者web.xml檔案被更新,伺服器會自動加載Web應用。該屬性的預設值為false.在web應用的開發和調 

  試階段,把reloadable設為true,可以友善對web應用的調試。在web應用正式釋出階段,把reloadable設為 

  false,可以減低tomcat的運作負荷,提高Tomcat的運作性能。 

  5>cachingAllowed:要是為true,标示允許啟用靜态資源的緩存。使用緩存能提高拜候靜态資源的效率。 

  tomcat把那一些時常被用戶端拜候的靜态資源(如:HTML文檔、圖檔檔案和聲響檔案等)放在緩存中,當客戶再 

  次拜候有關靜态資源時,Tomcat隻需直接從緩存中讀取相關資料,無須反複讀取檔案系統中的檔案。該屬 

  性的預設值為true. 

  6>cacheMaxSize:設定靜态資源的緩存的最大容量,以K為單元。要是,要是該屬性為100,表示100K,預設 

  為10240(即10M)。 

  7>workDir:指定web應用的工作目次。Tomcat在運作時會把與這個web應用相關的臨應試文章件放在此目次下。 

  8>uppackWar:要是此項設為true,表示将把web應用的war檔案睜開為開放目次布局後再運作。要是設為 

  false,則直接運作war檔案。該屬性的預設值為true。 

  同志們,使用tomcat6.0的注意了啊。當你使用我的方法設定tomcat後,你的myeclipse報如下錯誤時,不要驚慌,這是正确的,且聽我解釋。 

  console報錯: 

  警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property ' debug' to '0' did not find a matching property. 這是由于你使用的是tomcat6.0,由于它路程經過過程其他途徑對debug="0"這個屬性進行了使成為事實,是以這搭不能再有此屬性。你隻要将它去掉,就能夠沒事了啟動了。 也就是說去掉debug="0“,萬事OK,呵呵。 

例如:

配置tomcat自動加載改變的class檔案(無需重新開機tomcat)

核心是在</Host>标簽内加上 <Context path="" docBase="/usr/apache-tomcat-7.0.64/migu-portal" debug="0" reloadable="true"/>

參考:http://blog.csdn.net/miraclestar/article/details/6434164