Eclipse/tomcat 如何實(shí)現(xiàn)熱部署和熱啟動(dòng)
1、 熱部署:就是容器狀態(tài)在運(yùn)行的情況下重新部署整個(gè)項(xiàng)目.在這種情況下一般整個(gè)內(nèi)存會(huì)清空,重新加載.簡(jiǎn)單來(lái)說(shuō)就是Tomcat或者其他的web服務(wù)器會(huì)幫我們重新加載項(xiàng)目.這種方式可能會(huì)造成session丟失等情況。
2、熱加載:就是容器狀態(tài)在運(yùn)行的情況下重新加載改變編譯后的類(lèi).在這種情況下內(nèi)存不會(huì)清空,sessin不會(huì)丟失,但容易造成內(nèi)存溢出,或者找不到方法。因?yàn)閮?nèi)存無(wú)法轉(zhuǎn)變成對(duì)像. 一般改變類(lèi)的結(jié)構(gòu)和模型就會(huì)有異常,在已經(jīng)有的變量和方法中改變是不會(huì)出問(wèn)題的。
eclipse配置熱啟動(dòng):
在基于Java的實(shí)現(xiàn)熱部署、熱加載的過(guò)程中,類(lèi)裝入器扮演著重要的角色。類(lèi)裝入器不能重新裝入一個(gè)已經(jīng)裝入的類(lèi),否則會(huì)報(bào)java.lang.LinkageError,但只要使用一個(gè)新的類(lèi)裝入器實(shí)例,就可以將類(lèi)再次裝入一個(gè)正在運(yùn)行的應(yīng)用程序。一般debug模式都支持熱加載。
但我在這里遇到了eclipse使用debug啟動(dòng)卻并沒(méi)有熱加載的狀況,這樣對(duì)于開(kāi)發(fā)來(lái)說(shuō)是非常耗時(shí)的,因?yàn)槊扛囊淮蝐lass文件都需要重新編譯。下面我就如何使用eclipse進(jìn)行熱加載,做一個(gè)簡(jiǎn)單介紹:
啟動(dòng)eclicpse 找到下面這個(gè)目錄

打開(kāi)server.xml,找到
這行代碼,在你部署新項(xiàng)目的時(shí)候,docBase和source會(huì)隨著改變,現(xiàn)在還是熱部署的狀態(tài),這樣每次更改class文件都會(huì)自動(dòng)的去編譯,比較耗時(shí),接下來(lái)我們更改一下配置:
這里將reloadable改為false,添加crossContext="true",這樣就能進(jìn)行 熱啟動(dòng) 了,注意:需要用debug啟動(dòng)
不過(guò)我們需要在每次部署新項(xiàng)目的時(shí)候,重新去更改這個(gè)配置,我們可以觀察每次部署新項(xiàng)目的時(shí)候,server.xml這個(gè)文件的動(dòng)態(tài)變化,設(shè)置完成之后如果啟動(dòng)項(xiàng)目熱加載并沒(méi)有生效,那么勾選eclipse-->project-->Build Automatically,加上自動(dòng)編譯。
下面附上每個(gè)屬性的含義
- path 指出你的訪問(wèn)路
- docBase指出你的存放路徑
- debug 為設(shè)定debug的等級(jí)0提供最少的信息,9提供最多的信息
- reloadable=true時(shí) 當(dāng)web.xml或者class有改動(dòng)的時(shí)候都會(huì)自動(dòng)重新加載不需要從新啟動(dòng)服務(wù)
- crosscontext="true"表示配置的不同context共享一個(gè)session(可以不配置)
Tomcat配置熱啟動(dòng)
具體方法如下:
第一步: Tomcat安裝目錄下,修改 conf/server.xml 中的 Host 配置,設(shè)置其reloadable屬性為true,即在Host標(biāo)簽中添加reloadable="true"這一句,重啟Tomcat使配置文件生效。
第二步:在conf文件夾中的web.xml文件中添加
<init-param> <param-name>development</param-name> <param-value>true</param-value> </init-param>
第三步:重啟tomcat服務(wù)器,使修改生效。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
使用 jsvc 啟動(dòng)tomcat的方法(使用普通用戶(hù)運(yùn)行)
這篇文章主要介紹了使用 jsvc 啟動(dòng)tomcat(使用普通用戶(hù)運(yùn)行)的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-05-05
Tomcat的卸載和重裝的實(shí)現(xiàn)(圖文)
這篇文章主要介紹了Tomcat的卸載和重裝的實(shí)現(xiàn)(圖文),文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
詳解Tomcat Web 應(yīng)用綁定域名的幾種方式
本篇文章主要介紹了詳解Tomcat Web 應(yīng)用綁定域名的幾種方式,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-12-12
完美解決Tomcat關(guān)閉后報(bào)錯(cuò)問(wèn)題
這篇文章主要介紹了完美解決Tomcat關(guān)閉后報(bào)錯(cuò)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06
tomcat設(shè)置自啟動(dòng)的方法實(shí)現(xiàn)
本文主要介紹了在不同操作系統(tǒng)(Windows、MacOS、Ubuntu/Linux)下設(shè)置Tomcat自啟動(dòng)服務(wù),具有一定的參考價(jià)值,感興趣的可以了解一下2025-03-03
解決“Unable to start embedded Tomcat“錯(cuò)誤的完整
在使用Spring Boot開(kāi)發(fā)應(yīng)用程序時(shí),有時(shí)可能會(huì)遇到"Unable to start embedded Tomcat"的錯(cuò)誤,這可能是由多種原因引起的,本文將詳細(xì)介紹這個(gè)錯(cuò)誤的常見(jiàn)原因以及解決方法,幫助你快速解決問(wèn)題并順利啟動(dòng)應(yīng)用程序2023-10-10
解決安裝tomcat時(shí)出現(xiàn)的問(wèn)題
這篇文章主要介紹了解決安裝tomcat時(shí)出現(xiàn)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02
IDEA創(chuàng)建web service項(xiàng)目并打包部署到Tomcat
本文主要介紹了IDEA創(chuàng)建web service項(xiàng)目并打包部署到Tomcat,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05

