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應用程式。
比如如下這個配置例子:通過
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 "%r" %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也可以。