1. 程式人生 > >Tomcat下web專案部署方式

Tomcat下web專案部署方式

靜態部署

直接將web專案檔案拷貝到webapps目錄下

直接將web專案下WebRoot目錄下所有內容複製到tomcat安裝目錄下的webapps目錄,這個webapps目錄是Tomcat目錄的預設應用目錄,webapps目錄下的每個資料夾都是一個應用,當tomcat伺服器啟動時候,會載入webapps目錄下所有應用。比如一個web專案TT,直接將TT專案的WebRoot目錄下所有內容複製,然後在webapps目錄下新建一個TT目錄,然後將複製的內容貼上到webapps目錄下新建的TT目錄下。
對於webapps這個tomcat預設的應用存放的目錄是可配置的,開啟tomcat安裝目錄下conf目錄下server.xml檔案

找到的如下程式碼:

 <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

將appBase修改即可,改寫tomcat的預設應用目錄。比如改變為webs,那麼啟動Tomcat後立即在tomcat安裝目錄下新建一個叫webs的資料夾作為tomcat 應用目錄,原來的部署在webapps目錄下的應用都訪問不到了,比如講web應用複製到webs目錄下才能訪問到。

server.xml檔案中配置

tomcat的配置檔案中,一個web應用就是一個特定的Context,通過在server.xml檔案中的Host節點標籤內構建一個Context標籤部署一個JSP應用程式。
比如如下這個配置例子:通過

http://localhost:8080/vc/訪問。

path =/vc 是瀏覽器訪問appliction專案的虛擬路徑

docBase=D:\Dev\appliction\WebRoot表示web工程WebRoot的真實目錄

<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
<!-- <Valve className="org.apache.catalina.authenticator.SingleSignOn" /> --> <!-- Access log processes all example. Documentation at: /docs/config/valve.html Note: The pattern used is equivalent to using pattern="common" --> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" /> <!-- 下面通過在tomcat配置檔案server.xml檔案配置web應用,也一樣可以部署。 --> <Context path="/vc" docBase="D:\Dev\appliction\WebRoot" debug="0" privileged="true" reloadable="true"></Context> </Host>

或者其他案例

或者
<Context path="/myapp" reloadable="true" docBase="D:\myapp" workDir="D:\myapp\work"/>
或者
<Context path="/sms4" docBase="D:\workspace\sms4\WebRoot"/>

引數說明:
path是虛擬路徑;

docBase 是應用程式的物理路徑;

workDir 是這個應用的工作目錄,存放執行時生成的與這個應用相關的檔案;

debug 則是設定debug level, 0表示提供最少的資訊,9表示提供最多的資訊

privileged設定為true的時候,才允許Tomcat的Web應用使用容器內的Servlet

reloadable 如果為true,則tomcat會自動檢測應用程式的/WEB-INF/lib 和/WEB-INF/classes目錄的變化,可以在不重起tomcat的情況下,自動裝載改變後的應用程式,實現熱部署

antiResourceLocking和antiJARLocking 熱部署是需要配置的引數,預設false避免更新了某個webapp,有時候Tomcat並不能把舊的webapp完全刪除,通常會留下WEB-INF/lib下的某個jar包,必須關閉Tomcat才能刪除,這就導致自動部署失敗。設定為true,Tomcat在執行對應的webapp時,會把相應的原始檔和jar檔案複製到一個臨時目錄裡。

建立一個Context檔案單獨設定一個應用

在conf目錄中,新建 Catalina\localhost目錄,在該目錄中新建一個xml檔案,名字不可以隨意取,要和path後的那個名字一致,按照下邊這個path的配置,xml的名字應該就應該是vc(vc.xml),該xml檔案的內容為如下:

<Context path="/vc" docBase="D:\Dev\appliction\WebRoot" debug="0" privileged="true" reloadable="true"></Context>

檔案內容其實和上面第二點其實是一樣的,只是單獨以一個xml檔案形式部署web應用,一個檔案表示一個web應用,檔名是虛擬路徑。

刪除一個應用

刪除一個Web應用同時也要刪除webapps下相應的資料夾和server.xml中相應的Context,還要將Tomcat的conf\catalina\localhost目錄下相應的xml檔案刪除,否則Tomcat仍會去配置並載入。

動態部署

登陸tomcat管理控制檯:http://localhost:8080/,輸入使用者名稱和密碼後便可管理應用並動態釋出。在Context Path(option):中輸入/yourwebname ,這代表你的應用的訪問地址。 XML Configration file URL中要指定一個xml檔案,比如我們在F:\下建立一個hmcx.xml檔案,內容如下:<Context reloadable="false" />其中docBase不用寫了,因為在下一個文字框中填入。或者更簡單點,這個文字框什麼都不填,在WAR or Directory URL:中鍵入F:\hmcx即可,然後點選Deploy按鈕,上面就可以看到了web應用程式,名字就Context Path(option):中的名字。如果部署.war檔案還有更加簡單的方式,下面還有個Select WAR file uploae點選瀏覽選擇.war檔案,然後點選Deploy也可以。