天天看點

tomcat熱部署和熱加載

在項目開發過程中,經常要改動JAVA/JSP 檔案,但是又不想從新啟動伺服器(伺服器從新啟動花時間),想直接獲得(debug)結果.有兩種方式熱部署 和熱加載:

1.熱加載:在server.xml -> context 屬性中 設定 reloadable="true"

Java代碼    

  1. <Context docBase="xxx" path="/xxx" reloadable="true"/>  

2. 熱部署:在server.xml -> context 屬性中 設定  autoDeploy="true"

Java代碼    

  1. <Context docBase="xxx" path="/xxx" autoDeploy="true"/>  

 同樣可以:

1代碼  

  1. <Host name="localhost"  appBase="webapps"  
  2.             unpackWARs="true" autoDeploy="true"  
  3.             xmlValidation="false" xmlNamespaceAware="false">  
  4. <Context docBase="xxx" path="/xxx"/>   
  5. </Host>  

3.差別:

      熱加載:伺服器會監聽 class 檔案改變,包括web-inf/class,wen-inf/lib,web-inf/web.xml等檔案,若發生更改,則局部進行加載,不清空session ,不釋放記憶體。開發中用的多,但是要考慮記憶體溢出的情況。

      熱部署: 整個項目從新部署,包括你從新打上.war 檔案。 會清空session ,釋放記憶體。項目打包的時候用的多。

也可以通過Eclipse上設定實作上述配置檔案的修改 

Eclipse的工程名右鍵: properties->Tomcat->General->Make this context as reloadable(reloadable="true")不要選中 Eclipse的工程名右鍵:Tomcat project->Update Context Definition

注意:source 屬性有些版本不支援,容易出錯,去掉就行