天天看點

關于Tomcat 6的熱部署和熱加載

在tomcat的server.xml的host标簽中加入

<Context path="/Velocity" docBase="D:\workSpace\Velocity\webRoot" reloadable="true"/>

path:指定通路該Web應用的URL入口。 

docBase:指定Web應用的檔案路徑,可以給定絕對路徑,也可以給定相對于<Host>的appBase屬性的相對路徑,如果Web應用采用開放目錄結構,則指定Web應用的根目錄,如果Web應用是個war檔案,則指定war檔案的路徑。 

reloadable:如果這個屬性設為true,tomcat伺服器在運作狀态下會監視在WEB-INF/classes和WEB-INF/lib目錄下class檔案的改動,如果監測到有class檔案被更新的,伺服器會自動重新加載Web應用。

方法2(個人覺得這種方法比較好):在tomcat的conf\Catalina\localhost目錄中建立一個Velocity.xml檔案,内容為

<?xml version="1.0" encoding="UTF-8"?>

<Context path="/Velocity" docBase="D:\workSpace\Velocity\webRoot" reloadable="true"/>

我的環境:

    eclipse 版本 3.4   , 預設設定為 自動編譯  即(Project -> Biuld automatically 打鈎)

    tomcat 版本 6.0    , server.xml 設定如下:

<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false">
      <Context docBase="CPCWeb" path="/CPCWeb" reloadable="true" source="org.eclipse.jst.j2ee.server:CPCWeb"/></Host>      

大家可以看到 Host 标簽和Context标簽中 

autoDeploy="true"    ----  自動部署

reloadable="true"     ----  自動加載

現在我把這兩個值都設定為false,即修改後的配置如下:

<Host appBase="webapps" autoDeploy="false" name="localhost" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false">
      <Context docBase="CPCWeb" path="/CPCWeb" reloadable="false" source="org.eclipse.jst.j2ee.server:CPCWeb"/></Host>      

重新開機Tomcat ,支援類的自動加載了,tomcat 不重新開機了,控制台列印少了,世界終于安靜了...