Tomcat中WebApp的部署可以分為靜態(tài)部署和動態(tài)部署兩種。
一、靜態(tài)部署
靜態(tài)部署又可以分為以下的幾種:
1、直接將web項(xiàng)目文件件拷貝到webapps 目錄中
Tomcat安裝目錄中的的webapps目錄是Tomcat默認(rèn)的應(yīng)用目錄,當(dāng)服務(wù)器啟動時,會加載所有這個目錄下的應(yīng)用。所以可以將web應(yīng)用程序打包成一個 war包放在目錄下,服務(wù)器會自動解開這個war包,并在這個目錄下生成一個同名的文件夾。一個war包就是有特定格式的jar包,它是將一個web程序的所有內(nèi)容進(jìn)行壓縮得到。
具體如何打包,可以使用許多開發(fā)工具的IDE環(huán)境,如Eclipse、Intellij IDEA等。也可以在cmd中使用以下的命令命令:jar -cvf mywebapp.war mywebapp
webapps這個默認(rèn)的應(yīng)用目錄也是可以改變。打開Tomcat的conf目錄下的server.xml文件,找到下面內(nèi)容:
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
將appBase修改即可。
2、在server.xml中指定
在Tomcat的配置文件中,一個Web應(yīng)用就是一個特定的Context,可以通過在server.xml中新建Context節(jié)點(diǎn),然后在里面指定部署一個web應(yīng)用程序。打開server.xml文件,在Host標(biāo)簽內(nèi)建一個Context,內(nèi)容如下:
在tomcat中的conf目錄中,在server.xml中的,<Host>節(jié)點(diǎn)中添加:
<Context path="/test" docBase="D:\workspace\test\WebRoot" debug="0" privileged="true"></Context>
或者
<Context path="/myweb" reloadable="true" docBase="D:\myweb" workDir="D:\myweb\work"/>
或者
<Context path="/sms4" docBase="D:\workspace\sms4\WebRoot"/>
說明:
path是虛擬路徑;
docBase 是應(yīng)用程序的物理路徑;
workDir 是這個應(yīng)用的工作目錄,存放運(yùn)行時生成的與這個應(yīng)用相關(guān)的文件;
debug 則是設(shè)定debug level, 0表示提供最少的信息,9表示提供最多的信息
privileged設(shè)置為true的時候,才允許Tomcat的Web應(yīng)用使用容器內(nèi)的Servlet
reloadable 如果為true,則tomcat會自動檢測應(yīng)用程序的/WEB-INF/lib 和/WEB-INF/classes目錄的變化,自動裝載新的應(yīng)用程序,可以在不重起tomcat的情況下改變應(yīng)用程序,實(shí)現(xiàn)熱部署
antiResourceLocking和antiJARLocking 熱部署是需要配置的參數(shù),默認(rèn)false避免更新了某個webapp,有時候Tomcat并不能把舊的webapp完全刪除,通常會留下WEB-/lib下的某個jar包,必須關(guān)閉Tomcat才能刪除,這就導(dǎo)致自動部署失敗。設(shè)置為true,Tomcat在運(yùn)行對應(yīng)的webapp時,會把相應(yīng)的源文件和jar文件復(fù)制到一個臨時目錄里。
3、創(chuàng)建一個Context文件
在conf目錄中,新建Catalina\localhost目錄,在該目錄中新建一個xml文件,名字不可以隨意取,要和path后的那個名字一致,按照下邊這個path的配置,xml的名字應(yīng)該就應(yīng)該是hello.xml,該xml文件的內(nèi)容為:
<Context path="/hello" docBase="E:\workspace\hello\WebRoot" debug="0" privileged="true"></Context>
//tomcat自帶例子如下:
<Context docBase="${catalina.home}/server/webapps/host-manager"
privileged="true" antiResourceLocking="false" antiJARLocking="false">
</Context>
這個例子是tomcat自帶的,編輯的內(nèi)容實(shí)際上和第二種方式是一樣的,其中這xml文件名字就是訪問路徑,這樣可以隱藏應(yīng)用的真實(shí)名字。
二、動態(tài)部署
登陸tomcat管理控制臺:http://localhost:8080/,輸入用戶名和密碼后便可管理應(yīng)用并動態(tài)發(fā)布。
在Context Path(option):中輸入/yourwebname ,這代表你的應(yīng)用的訪問地址。
XML Configration file URL中要指定一個xml文件,比如我們在F:\下建立一個hmcx.xml文件,內(nèi)容如下: <Context reloadable="false" />其中docBase不用寫了,因?yàn)樵谙乱粋€文本框中填入。或者更簡單點(diǎn),這個文本框什么都不填,在WAR or Directory URL:中鍵入F:\hmcx即可,然后點(diǎn)擊Deploy按鈕,上面就可以看到了web應(yīng)用程序,名字就Context Path(option):中的名字。
如果部署.war文件還有更加簡單的方式,下面還有個Select WAR file uploae點(diǎn)擊瀏覽選擇.war文件,然后點(diǎn)擊Deploy也可以。