Linux tomcat的部署方式和conf目錄下各文件的作用

在Tomcat中部署Java Web應用程序有兩種方式:靜態部署和動態部署。(在下文中$CATALINA_HOME指的是Tomcat根目錄)

一、靜態部署

1、直接將web項目文件件拷貝到webapps 目錄中

Tomcat的Webapps目錄是Tomcat默認的應用目錄,當服務器啓動時,會加載所有這個目錄下的應用。所以可以將JSP程序打包成一個 war包放在目錄下,服務器會自動解開這個war包,並在這個目錄下生成一個同名的文件夾。一個war包就是有特性格式的jar包,它是將一個web程序的所有內容進行壓縮得到。具體如何打包,可以使用許多開發工具的IDE環境,如Eclipse等。也可以用 cmd 命令:jar -cvf mywar.war myweb 

webapps這個默認的應用目錄也是可以改變。打開Tomcat的conf目錄下的server.xml文件,找到下面內容:

<Host name="localhost" appBase="webapps"

unpackWARs="true" autoDeploy="true"

xmlValidation="false" xmlNamespaceAware="false">

將appBase修改即可。 

2、在server.xml中指定 

在Tomcat的配置文件中,一個Web應用就是一個特定的Context,可以通過在server.xml中新建Context裏部署一個JSP應用程序。打開server.xml文件,在Host標籤內建一個Context,內容如下。

在tomcat中的conf目錄中,在server.xml中的,<host/>節點中添加: 

<Context path="/hello" docBase="D:\ workspace\hello\WebRoot" debug="0" privileged="true"> 

</Context>

或者

<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文件複製到一個臨時目錄裏。

讓tomcat只運行conf/server.xml中指定的web應用可以有以下2種辦法:

實現一: 

1)將要部署的WEB應用放在webapps以外的路徑, 並在server.xml相應的Context 中的docBase 指定. 

2)刪除webapps中的所有文件夾, 以及conf/catalina/localhost下所有xml文件. 

注: webapps是server.xml中的Host 元素的appBase 屬性的值.

實現二: 

修改server.xml中Host 元素的屬性, 添加或修改:deployXML ="false"deployOnStartup ="false"autoDeploy ="false"

含義: 

     deployXML ="false": 不部署conf/catalina/localhost下的xml相應的WEB應用

     deployOnStartup ="false":tomcat啓動時, 不部署webapps下的所有web應用

     autoDeploy ="false" :避免tomcat在掃描改動時, 再次把webapps下的web應用給部署進來.

注:

Tomcat中webapps目錄下不能直接存放網頁格式的文件,否則無法訪問到該文件,必須有子目錄才能訪問該網頁文件。

例如:我們直接將index.html放在webapps目錄中,通過瀏覽器http://localhost:8080/index.html 是無法訪問到index.html的。而必須要webapps/xxxxx/index.html纔可以通過http://localhost:8080/xxxxxx/index.html 訪問到index.html頁面。

3、創建一個Context文件 

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

<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自帶的,編輯的內容實際上和第二種方式是一樣的,其中這xml文件名字就是訪問路徑,這樣可以隱藏應用的真實名字。

4、注意:

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

二、動態部署

動態部署是指可以在服務器啓動之後部署web應用程序,而不用重新啓動服務器。動態部署要用到服務器提供的manager.war文件,如果 在$CATALINA_HOME/webapps/下沒有該文件,你必須去重新下載tomcat,否則不能完成以下的功能。要想使用該管理程序必須首先編 輯$CATALINA_HOME/conf/tomcat-users.xml文件。

<tomcat-users>
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager"/>
<role rolename="admin"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="role1" password="tomcat" roles="role1"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="admin" password="" roles="admin,manager"/>
</tomcat-users> 

或者

<tomcat-users>
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager"/>
<role rolename="admin"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/> 
<user username="tomcat" password="tomcat" roles="admin,manager,role1,tomcat,admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status" />
</tomcat-users>

然後在瀏覽器中鍵入如下地址:

http://localhost:8080/應該看到一個漂亮的加菲貓了吧。


點擊右邊的Manager App鏈接,提示輸入用戶名和密碼,本文都是tomcat,然後可以看到以下頁面:



(1)Context Path(requried): 中輸入/Pet

(2)XML Configration file URL 中要指定一個.xml文件,比如我們在F:/下建立一個Pet.xml文件,內容如下:<Context  reloadable ="false"/ >docBase 不用寫了,因爲要在下一個文本框中填入。或者更簡單點,這個文本框什麼都不填。

(3)WAR or Directory URL: 輸入F:/PetWet或者F:/Pet.war都可以,然後點擊Deploy按鈕,看看上面是不是已經看到了你web應用程序,名字就是你Context Path(requried):中輸入的名字。

(4)如果你部署.war文件還有更加簡單的方式,下面還有個Select WAR file upload 點擊選擇文件按鈕選擇.war文件,然後點擊Deploy也可以

三、tomcat conf目錄下文件介紹及作用

/conf:存放Tomcat服務器的各種全局配置文件,其中最重要的是server.xml和web.xml.

Tomcat的配置基於兩個配置文件:1.server.xml - Tomcat的全局配置文件   2.web.xml - 在Tomcat中配置不同的關係環境

1、server.xml

server.xml是Tomcat的主配置文件.是配置tomcat的文件,比如我們可以在裏面更改8080端口等.還可以在裏面添加<Context>和<Resourses>來添加工程和JNDI資源.

完成兩個目標:

a、 提供Tomcat組件的初始配置.

b、 說明Tomcat的結構,含義,使得Tomcat通過實例化組件完成起動及構建自身, 如在server.xml所指定的server.xml種的重要元素:元素及其描述

2、web.xml

Tomcat可以讓用戶通過將缺省的web.xml放入conf目錄中來定義所有關係環境的web.xml的缺省值.建立一個新的關係環境時,Tomcat使用缺省的web.xml文件作爲基本設置和應用項目特定的web.xml(放在應用項目的WEB-INF/web.xml文件)來覆蓋這些缺省值.是配置整個tomcat的jsp和servlet工作中的一些情況,比如我們配置list來不讓我們輸入一個目錄的時候顯示出那個目錄下的jsp文件,而是顯示404錯誤.還有在一些安全方面也可以做配置.

3、tomcat-users.xml

配置tomcat的用戶了信息.可以到tomcat的開始頁http://localhost:8080中點tomcat manager就會提示你要用戶名和密碼了,這裏的用戶名和密碼就可以在這個xml中配置的

4、context.xml

是用來配置環境的.我們開發大項目的時候一般都是配置這個文件的來添加一個項目的而不是把項目拷貝到webapp下去,還有也可以在這裏配置JNDI,一般我們都選擇在這裏而不是server.xml中配置工程和JNDI.


發佈了37 篇原創文章 · 獲贊 30 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章