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,呵呵。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章