1. 程式人生 > >Tomcat熱部署的三種方式

Tomcat熱部署的三種方式

熱部署是指在你修改專案BUG的時候對JSP或JAVA類進行了修改在不重啟WEB伺服器前提下能讓修改生效。但是對配置檔案的修改除外!

1、直接把專案web資料夾放在webapps裡。


2、在tomcat\conf\server.xml中的<host></host>內部新增<context/>標籤:
<Context debug="0" docBase="D:\demo1\web" path="/demo1" privileged="true" reloadable="true"/>

docBase:專案路徑,可以使用絕對路徑或相對路徑,相對路徑是相對於webapps
path:訪問專案的路徑,如:http://127.0.0.1:8080/demo1
reloadable:是否自動載入新增或改變的class檔案.
debug屬性與這個Engine關聯的Logger記錄的除錯資訊的詳細程度。數字越大,輸出越詳細。如果沒有指定,預設為0。 也就是程式異常時寫入日誌檔案裡的詳細程度。


3、第三種方式和第二種差不多,但是不是在Server.xml檔案中新增Context標籤,而是在
%tomcat_home%\conf\Catalina\localhost中新增一個XML檔案,

如:demo1.xml,內容如下:
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="D:\demo1\web" reloadable="true" />
,只是缺少了path屬性,如果你硬寫個path="demo2"的話,是沒有用的,tomcat不明確的告訴你:“我不認得”,
這種方式伺服器會使用xml檔案的名字作為path屬性的名字,SO訪問地址為:http://localhost:8080/demo1

=========================================================================================


還有一種方式:使用第三方工具

http://www.zeroturnaround.com/jrebel/

1、解壓縮包

2、執行java -jar jrebel-setup.jar

3、會彈出一個安裝介面(自己看,很好懂)

4、在MyEclipse中配置,找到伺服器(如tomcat)的配置頁面,在tomcat的jdk配置頁面的Optional Java VM arguments輸入框中加如下引數:

-noverify -javaagent:D:\dev\JRebel\jrebel.jar -Drebel.dirs=D:\dev\apache-tomcat-6.0.20\webapps\nmr

第一個路徑是jar包的絕對路徑,第二個地址是說想讓哪個目錄下的類更改後不重啟服務。

如果Optional Java VM arguments輸入框中有其他引數,用空格隔開。

5、釋出專案,就能在控制檯看到效果。

類就可以改變之後不用重啟tomcat。

目前流行的伺服器都支援。詳細看官方網站。

下載的壓縮包檔名為jrebel-setup.zip (7.8 MB)
可參考:http://japankn.javaeye.com/blog/577931