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也可以。

參考文獻:
Tomcat項目部署方式

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章