java 不重启部署_编译Java类后不重启Tomcat有两种方式:热部署、热加载
不重啟Tomcat有兩種方式:熱部署、熱加載
熱部署:容器狀況在運(yùn)行時(shí)重新部署整個(gè)項(xiàng)目。這類環(huán)境下一般整個(gè)內(nèi)存會(huì)清空,重新加載,這類方式
有可能會(huì)造成sessin丟失等環(huán)境。tomcat 6確實(shí)可以熱部署了,而且對(duì)話也沒(méi)丟.
熱加載:最好是在調(diào)試過(guò)程中使用,免患上整個(gè)項(xiàng)目加載,Debug標(biāo)準(zhǔn)樣式支持熱加載。容器狀況在運(yùn)行時(shí)重
新加載轉(zhuǎn)變編譯后的類。在這類環(huán)境下內(nèi)存不會(huì)清空,sessin不會(huì)丟失,但容易造成內(nèi)存溢出,或者找不到方
法。一般轉(zhuǎn)變類的布局和模型就會(huì)有異常,在已經(jīng)有的變量和方法中轉(zhuǎn)變是不會(huì)出問(wèn)題的(Eclipse、
MyEclipse8、JBuilder、IntelliJ IDEA…)。
常用的一定第二種:熱加載了,設(shè)置如下!
在tomcat的conf中的server.xml中的host設(shè)置中添加
docBase=”D:\develop\test”
debug=”0″ privileged=”true” reloadable=”true”/>
reloadable=”true” !最重要
它內(nèi)里有很多屬性,意義如下:
1>path:指定拜候該web應(yīng)用的URL進(jìn)口;
2>docBase:指定web應(yīng)用的文件路徑,可以給定絕對(duì)路徑,也可以給定相對(duì)于的appBase屬性【默認(rèn)
指向tomcat的webapps】的相對(duì)于徑;要是Web應(yīng)用是個(gè)war文件,則指定war文件的路徑。
3>className:指定使成為事實(shí)Context組件的Java類的名字,這個(gè)Java類必須使成為事實(shí)org.apache.catalina.Context
接口,該屬性的默認(rèn)值為org.apache.catalina.StandardContext。
4>reloadable:要是這個(gè)屬性設(shè)置為true,Tomcat服務(wù)器在運(yùn)行狀況下會(huì)監(jiān)視在WEB-INF/classess和WEB-
INF/lib目次下的class文件的改動(dòng),以及監(jiān)視web應(yīng)用的WEB-INF/web.xml文件的改動(dòng)。要是檢測(cè)到的class
文件或者web.xml文件被更新,服務(wù)器會(huì)自動(dòng)加載Web應(yīng)用。該屬性的默認(rèn)值為false.在web應(yīng)用的開(kāi)發(fā)和調(diào)
試階段,把reloadable設(shè)為true,可以方便對(duì)web應(yīng)用的調(diào)試。在web應(yīng)用正式發(fā)布階段,把reloadable設(shè)為
false,可以減低tomcat的運(yùn)行負(fù)荷,提高Tomcat的運(yùn)行性能。
5>cachingAllowed:要是為true,標(biāo)示允許啟用靜態(tài)資源的緩存。使用緩存能提高拜候靜態(tài)資源的效率。
tomcat把那一些時(shí)常被客戶端拜候的靜態(tài)資源(如:HTML文檔、圖片文件和聲響文件等)放在緩存中,當(dāng)客戶再
次拜候有關(guān)靜態(tài)資源時(shí),Tomcat只需直接從緩存中讀取相關(guān)數(shù)據(jù),無(wú)須反復(fù)讀取文件系統(tǒng)中的文件。該屬
性的默認(rèn)值為true.
6>cacheMaxSize:設(shè)定靜態(tài)資源的緩存的最大容量,以K為單元。要是,要是該屬性為100,表示100K,默認(rèn)
為10240(即10M)。
7>workDir:指定web應(yīng)用的工作目次。Tomcat在運(yùn)行時(shí)會(huì)把與這個(gè)web應(yīng)用相關(guān)的臨應(yīng)試文章件放在此目次下。
8>uppackWar:要是此項(xiàng)設(shè)為true,表示將把web應(yīng)用的war文件睜開(kāi)為開(kāi)放目次布局后再運(yùn)行。要是設(shè)為
false,則直接運(yùn)行war文件。該屬性的默認(rèn)值為true。
同志們,使用tomcat6.0的注意了啊。當(dāng)你使用我的方法設(shè)置tomcat后,你的myeclipse報(bào)如下錯(cuò)誤時(shí),不要驚慌,這是正確的,且聽(tīng)我解釋。
console報(bào)錯(cuò):
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property ‘ debug’ to ’0′ did not find a matching property. 這是由于你使用的是tomcat6.0,由于它路程經(jīng)過(guò)過(guò)程其他途徑對(duì)debug=”0″這個(gè)屬性進(jìn)行了使成為事實(shí),所以這搭不能再有此屬性。你只要將它去掉,就能夠沒(méi)事了啟動(dòng)了。 也就是說(shuō)去掉debug=”0“,萬(wàn)事OK,呵呵。
======================================================================
還有一種方式:使用第三方工具
http://www.zeroturnaround.com/jrebel/
1、解壓縮包
2、執(zhí)行java -jar jrebel-setup.jar
3、會(huì)彈出一個(gè)安裝界面(自己看,很好懂)
4、在MyEclipse中配置,找到服務(wù)器(如tomcat)的配置頁(yè)面,在tomcat的jdk配置頁(yè)面的Optional Java VM arguments輸入框中加如下參數(shù):
-noverify -javaagent:D:\dev\JRebel\jrebel.jar -Drebel.dirs=D:\dev\apache-tomcat-6.0.20\webapps\nmr
第一個(gè)路徑是jar包的絕對(duì)路徑,第二個(gè)地址是說(shuō)想讓哪個(gè)目錄下的類更改后不重啟服務(wù)。
如果Optional Java VM arguments輸入框中有其他參數(shù),用空格隔開(kāi)。
5、發(fā)布項(xiàng)目,就能在控制臺(tái)看到效果。
類就可以改變之后不用重啟tomcat。
目前流行的服務(wù)器都支持。詳細(xì)看官方網(wǎng)站。
下載的壓縮包文件名為jrebel-setup.zip (7.8 MB)
可參考:http://japankn.javaeye.com/blog/577931
總結(jié)
以上是生活随笔為你收集整理的java 不重启部署_编译Java类后不重启Tomcat有两种方式:热部署、热加载的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java实现socket网络编程
- 下一篇: Adodb CS3(DW、FW、PS、F