Tomcat學習筆記【5】--- 項目部署詳解

本文主要講在Tomcat中部署項目的幾種方式:靜態部署、動態部署。html

一 靜態部署

靜態部署項目有好幾種方式,比較典型的有以下4種:java

1.1 方式一:將Web項目放到webApps目錄下

直接將web項目文件件拷貝到webapps目錄中,Tomcat的Webapps目錄是Tomcat默認的應用目錄,當服務器啓動時,會加載全部這個目錄下的應用。web

也能夠將web項目打包成一個 war包放在目錄下,服務器會自動解開這個war包,並在這個目錄下生成一個同名的文件夾。一個war包就是有特性格式的jar包,它是將一個web程序的全部內容進行壓縮獲得。具體如何打包,可使用許多開發工具的IDE環境,如Eclipse等。也能夠用 cmd 命令:jar -cvf mywar.war myweb。apache

webapps這個默認的應用目錄也是能夠改變。打開Tomcat的conf目錄下的server.xml文件,將下面內容中appBase修改便可改掉便可:瀏覽器

1 <Host name="localhost" appBase="webapps"
2        unpackWARs="true" autoDeploy="true"
3        xmlValidation="false" xmlNamespaceAware="false">

1.2 方式二: 新建一個Host虛擬主機目錄,將Web項目放到該目錄下

建立一個虛擬主機目錄方式以下:tomcat

1)修改server.xml文件,在<Engine>標籤中新建一個<Host>標籤:服務器

<Host name="mytest.com"  appBase="mytest" unpackWARs="true" autoDeploy="true"></Host>

其中虛擬主機地址名是mytest.com,目錄地址是mytest。網絡

2)在Tomcat目錄中建立mytest文件夾,並在該文件夾下新建aaa文件夾,在該文件夾中建立1.html文件:app

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8 <div> 這是test~~ </div>
 9 </body>
10 </html>

3)配置hosts代理:webapp

打開本地的C:\Windows\System32\drivers\etc\hosts配置文件,添加127.0.0.1 mytest.com。

修改本地hosts緣由:當在瀏覽器中打開某個url地址時,首先會到本地hosts文件中查找該域名對應的IP,若是查找不到,就會到對應網絡運營商的DNS服務器上解析查找對應的域名的IP,若是查找到了,就返回給瀏覽器,瀏覽器就給對應的IP地址發送請求,從而將對應頁面請求回來並呈現。而咱們上邊配置的mytest.com域名,並非想去網絡運營商DNS服務器上查找IP,而是要讓其對應到本地計算機IP上,到本地Tomcat中配置的mytest目錄中訪問資源,所以須要將mytest.com解析地址設置爲本地計算機。

4)關閉瀏覽器代理(非必操做步驟)

說明:在有些公司網絡中,都是經過代理服務器訪問外部網站的,若是不是經過代理服務器訪問外部網站,就能夠忽略這個步驟。

關掉代理緣由:不關掉代理的話,就會到代理服務器計算機上請求對應地址內容,而代理服務器上的hosts文件並無配置對應域名的IP。

5)啓動Tomcat服務器(已啓動的要重啓),測試是否部署成功

在瀏覽器中輸入:http://mytest.com:8080/aaa/1.html

顯示內容以下說明部署成功:

1.3 方式三:修改server.xm 的host節點,添加Context標籤,指定新的部署目錄,將Web項目放到該目錄下

1)在Host標籤內,添加<Context  path="/訪問資源目錄" docBase="e:/xxx"/>

在Tomcat的配置文件中,一個Web應用就是一個特定的Context,能夠經過在server.xml中新建Context裏部署一個web應用程序。

1       <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
2       
3         <Context path="/hello" docBase="D:\aaa" debug="0" privileged="true"></Context>
4         
5         <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
6                prefix="localhost_access_log" suffix=".txt"
7                pattern="%h %l %u %t &quot;%r&quot; %s %b" />
8       </Host>

說明:

  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標籤,其path地址要不同,不然報錯;

能夠將部署目錄放在任何一個目錄中,而不用放在Tomcat工程中,例如本示例中放在D盤的aaa文件中。

2)在D盤建立aaa文件夾,並建立1.html文件:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8 <div> 這是test~~ </div>
 9 </body>
10 </html>

3)啓動Tomcat(已啓動須要重啓),測試是否部署成功:

在瀏覽器中輸入:http://localhost:8080/hello/1.html

顯示內容以下說明部署成功:

1.4 方式四:在Tomcat工程中的conf\Catalina下對應域名的文件夾下建立xml方式設定部署目錄

1)打開conf\Catalina\localhost目錄,並建立hello4.xml文件,並添加以下內容:

1 <?xml version='1.0' encoding='utf-8'?>
2 
3 <Context path="/hello4" docBase="D:\aaa" debug="0" privileged="true"></Context>

2)在D盤建立aaa文件夾,並建立1.html文件

這個在上邊步驟都有。

3)啓動Tomcat(已啓動須要重啓),測試是否部署成功:

在瀏覽器中輸入:http://localhost:8080/hello4/1.html

顯示內容以下說明部署成功:

二 動態部署

動態部署也稱做熱部署,是指動態建立部署目錄後,不須要重啓Tomcat就能夠生效。必須在Tomcat的管理界面下完成。

動態部署也有兩種方式:

2.1 方式一:常規方式部署

1)建立用戶名和密碼

動態部署都是在Tomcat的管理界面進行的,這裏說的管理界面指的是Tomcat項目包中webapps/ROOT下提供的界面,即http://localhost:8080/地址打開的頁面。

在這個頁面中,右上角有個Manager App按鈕,點擊這個按鈕進入管理界面,但須要輸入用戶名和密碼,所以首先要配置用戶名和密碼。

配置方法:打開Tomcat項目中conf目錄下的tomcat-users.xml文件,在<tomcat-users>標籤中添加下面代碼:

1   <role rolename="manager-gui"/>
2   <role rolename="manager-script"/>
3   <user username="tomcat" password="tomcat" roles="manager-gui,manager-script"/>

role標籤說明:

指定權限,rolename屬性有四種權限能夠設置:

  • manager-gui - 容許訪問HTML GUI和狀態頁面(管理控制,熱部署核心權限)
  • manager-script - 容許訪問文本界面和狀態頁面(用於遠程部署)
  • manager-jmx - 容許訪問JMX代理和狀態頁面
  • manager-status - 僅容許訪問狀態頁面

user標籤說明:

username指定用戶名;

password指定密碼;

roles指定該用戶具備的權限,多個權限之間用逗號隔開。

注意:上邊這些權限說明能夠在Tomcat項目提供的http://localhost:8080/manager/html地址上看到。

2)啓動Tomcat服務器,打開http://localhost:8080界面,點擊右上角Manager App按鈕,輸入用戶名和密碼,進入Tomcat管理界面:

在在頁面中,Applications欄目顯示的是當前已啓動的部署目錄地址,從下圖能夠看到,咱們上邊靜態方式部署的目錄都在:

3)在管理界面中下邊Deploy欄目,進行新項目目錄添加和管理:

Context Path(required):輸入訪問路徑名,相似靜態部署中的,這表明你的應用的訪問地址。

XML Configration file URL:中要指定一個xml文件地址,好比咱們在F:\下創建一個hmcx.xml文件,這個是可選項,若是不填該項,就須要在下邊的WAR or Directory URL中指定部署目錄地址。

WAR or Directory URL:輸入部署目錄地址。

填寫完這些信息,點擊下邊的Deploy按鈕便可完成部署。

這時,咱們在上邊的Applications列表中,能夠看到路徑是/hello5的項目已添加。

4)測試是否部署成功

此次就不須要重啓Tomcat,而是在瀏覽器直接輸入:http://localhost:8080/hello5/1.html。

顯示以下效果說明部署成功:

2.2 方式二:經過war包部署

在管理界面的Deploy欄目中,還有個WAR file to deploy子欄目,這個就是經過上傳.war包方式部署,這種方式更簡單。

java工程打包出來的是一個jar包,而Web工程打包出來的是一個WAR包。具體如何建立和打包,後邊會補充。

 

參考資料&內容來源:

速學堂:http://www.sxt.cn/tomcat/tomcat-deployment.html

相關文章
相關標籤/搜索