- 相關(guān)推薦
熱部署javaweb應用程序的方法
對于Java應用程序來(lái)說(shuō),熱部署就是在運行時(shí)更新Java類(lèi)文件。在基于Java的應用服務(wù)器實(shí)現熱部署的過(guò)程中,類(lèi)裝入器扮演著(zhù)重要的角色。大多數基于Java的應用服務(wù)器,包括EJB服務(wù)器和Servlet容器,都支持熱部署。類(lèi)裝入器不能重新裝入一個(gè)已經(jīng)裝入的類(lèi),但只要使用一個(gè)新的類(lèi)裝入器實(shí)例,就可以將類(lèi)再次裝入一個(gè)正在運行的應用程序。
一、熱部署介紹
熱部署對于程序開(kāi)發(fā)的好處就不用多說(shuō)了,這里記錄一下自己的使用過(guò)程:
1.myeclipse的年代,那時(shí)候通過(guò)myeclipse新建的web項目,通過(guò)debug方式啟動(dòng),可以獲得修改java類(lèi)中的方法體和jsp頁(yè)面立即生效的功能;這是純eclipse所沒(méi)有的。
2.后來(lái)出了jrebel可以獲得新增java類(lèi)和方法也無(wú)需重啟應用服務(wù)器即可生效的功能,當然這個(gè)功能不完美,有缺陷。
3.隨著(zhù)eclipse的升級,推出了Jee版本的eclipse,也就逐漸淘汰了myeclipse,但是JEE版本的eclipse和tomcat配合,即便使用debug模式啟動(dòng),修改java類(lèi)還是會(huì )導致整個(gè)應用的重新加載,這是不能忍受的,這時(shí)候,發(fā)現了jetty配合JEE版本的 eclipse可以完美的實(shí)現熱加載,即改即用,很方便。
二、熱部署過(guò)程
先做個(gè)說(shuō)明,沒(méi)有熱部署和有熱部署的開(kāi)發(fā)效率真是天差地別的。所以熱部署受很多第三方軟件包(Struts,Spring,Hibernate)的限制。本來(lái)可以熱部署的,加入了第三方的包就不可以了。所以,先說(shuō)明詳細的軟件環(huán)境,和程序配置是非常必要的。
虛擬機:java Tomcat Eclipse Myeclipse
應用程序情況:純正的sertlet+jsp+javabean,數據庫連接使用JDBC-ODBC橋連接Access數據庫。沒(méi)有使用任何第三方軟件包,沒(méi)有使用Struts,Spring,Hibernate.\WebRoot\WEB-INF\lib下是空的。
配置方法:
ie登陸http://Tomcat所在的服務(wù)器IP:8080/ →點(diǎn)超連接“Tomcat Administration”→ 輸入用戶(hù)名密碼登陸→在左側的功能樹(shù)中→Tomcat Server→Service(Catalina)→Host(localhost)→Context(/要修改的web項目)→右側新出現的頁(yè)面中 →Reloadable設置為true→Save按鈕→Commit Changes.
開(kāi)發(fā)時(shí),修改。java文件后,調用這個(gè)類(lèi)時(shí)日志提示:
- Reloading this Context has started
這是正在重新加載修改后的。class文件。
j2ee開(kāi)發(fā)插件(這里使用Myeclipse),也可能導致熱部署失效。因為插件必須要把編譯好的。class文件從工作空間復制到Tomcat\webapps下的項目里。才能使Tomcat得到需要熱部署的文件。
最后說(shuō)一下jreble,網(wǎng)上的資料比較復雜,下面介紹個(gè)最簡(jiǎn)單的方法:
在resin的啟動(dòng)文件,例如httpd.sh中增加:
Resin 3.1+版本:#div_code img{border:0px;} exec $JAVA_EXE -javaagent:/opt/apps/resin/jrebel4.0-crack.jar -jar ${RESIN_HOME}/lib/resin.jar $*
Resin 3.0-版本:#div_code img{border:0px;} args=“-J-javaagent:/opt/apps/resin/jrebel4.0-crack.jar”
三、小結
在進(jìn)行java web程序開(kāi)發(fā)過(guò)程中,經(jīng)常遇到這種問(wèn)題,修改一個(gè)java文件(*.java),需要重啟web服務(wù)器(如tomcat,weblogic等),部署項目。而起/停服務(wù)器浪費了大量的時(shí)間。在小項目中,也許我們感覺(jué)不到。但對于公司的大型項目:如數據中心,生產(chǎn)等系統開(kāi)發(fā)而言,往往起/停需要等待幾分鐘時(shí)間。更浪費時(shí)間的是,對于一個(gè)類(lèi)中的方法的調試過(guò)程,如果修改多次,需要反復的啟停服務(wù)器,那么浪費的時(shí)間更多。從上可以看出,我們急需一個(gè)可快速起/ 停服務(wù)器的工具,來(lái)提高我們的開(kāi)發(fā)效率。
【熱部署javaweb應用程序的方法】相關(guān)文章:
ASP應用程序的維護方法10-21
Java開(kāi)發(fā)Tomcat部署項目方法10-13
SEO優(yōu)化關(guān)鍵詞的選擇及部署方法08-27
J2EE分層服務(wù)器部署方法10-04
熱菜的烹調方法09-11
什么是熱瑜伽-熱瑜伽的練習方法09-30
熱瑜伽基本方法功效09-03
未來(lái)郵件營(yíng)銷(xiāo)應用程序的4個(gè)爆發(fā)點(diǎn)07-26
靈活調整戰略部署07-27