在項目開發過程中,經常要改動JAVA/JSP 檔案,但是又不想從新啟動伺服器(伺服器從新啟動花時間),想直接獲得(debug)結果.有兩種方式熱部署 和熱加載:
1.熱加載:在server.xml -> context 屬性中 設定 reloadable="true"
Java代碼
- <Context docBase="xxx" path="/xxx" reloadable="true"/>
2. 熱部署:在server.xml -> context 屬性中 設定 autoDeploy="true"
Java代碼
- <Context docBase="xxx" path="/xxx" autoDeploy="true"/>
同樣可以:
1代碼
- <Host name="localhost" appBase="webapps"
- unpackWARs="true" autoDeploy="true"
- xmlValidation="false" xmlNamespaceAware="false">
- <Context docBase="xxx" path="/xxx"/>
- </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 屬性有些版本不支援,容易出錯,去掉就行