天天看點

Tomcat下使用war包釋出項目

在下文中$CATALINA_HOME指的是Tomcat根目錄。

一、靜态部署

靜态部署指的是我們在伺服器啟動之前部署我們的程式,隻有當伺服器啟動之後,我們的Web應用程式才能通路。

以下3種方式都可以部署:(以PetWeb項目為例說明,PetWeb目錄假設是F:/PetWeb)

1.利用Tomcat自動部署

将PetWeb目錄拷貝到$CATALINA_HOME/webapps下,然後啟動伺服器就可以了,Tomcat啟動時将自動加載應用。

這種方式比較簡單,但是web應用程式必須在webapps目錄下。Tomcat的Webapps目錄是Tomcat預設的應用目錄,當伺服器啟動時,會加載所有這個目錄下的應用。

2.修改Server.xml檔案部署

這種方式可以不必将PetWeb目錄拷貝到webapps下,直接在F:/部署。方法如下,更改$CATALINA_HOME/conf/server.xml檔案,

找到以下内容:

Xml代碼:

<Context  path ="/Pet"  reloadable ="false"  docBase ="F:/PetWeb"  workDir ="d:/Mywebapps/emp"  />

reloadable:表示可以在運作時在classes與lib檔案夾下自動加載類包。其中reloadable="false"表示當應用程式 中的内容發生更改之後伺服器不會自動加載,這個屬性在開發階段通常都設為true,友善開發,在釋出階段應該設定為false,提高應用程式的通路速度。

docbase:表示應用程式的路徑,注意斜杠的方向“/”。 docBase可以使用絕對路徑,也可以使用相對路徑,相對路徑相對于webapps。

workdir:表示緩存檔案的放置位址

3.增加自定義web部署檔案(推薦使用,不需要重新開機Tomcat )

這種方式和方法2差不多,但不是在Server.xml檔案中添加Context标簽,而是在$CATALINA_HOME/conf /Catalina/localhost中添加一個xml檔案,如Pet.xml.在Tomcat安裝目錄conf/Catalina /localhost下,裡面有Tomcat自帶的三個應用,随意複制其中的一個XML檔案,然後修改docbase指向你自己的應用程式,并把檔案名改 名,各參數參見方法2中的<Context>标簽的參數,或者你也可以自己建立一個XML檔案。(注意此檔案名将作為Context中的path屬性值,不管檔案裡的path屬性值如何設定也是無效的 ),将以下内容複制過去,修改相應路徑即可。

<Context  path ="/Pet"  docBase ="F:/PetWeb"  

        debug ="0"  privileged ="true"  reloadable ="false"  >  

</Context>

注: Web應用以.war檔案的形式部署

可以将JSP程式打包成一個war包放在目錄下,伺服器會自動解開這個war包,并在這個目錄下生成一個同名的檔案夾。一個war包就是有特性格式的jar包,它是将一個Web程式的所有内容進行壓縮得到。

我們剛才是将PetWeb檔案夾部署在了伺服器中,我們知道可以将Web應用程式的内容打成.war 包,然後在部署在伺服器上。打包請參考如下步驟: 

    1、打開指令提示符(cmd) 

    2、設定jdk環境變量  

    3、在指令提示符中進入項目檔案夾F:/PetWeb後,鍵入如下指令:jar cvf Pet.war */ .   (注意最後有個“. ”)。這樣在F:/PetWeb下應該有Pet.war檔案。 (也可以打包到指定的地方,指令如下:jar cvf d:/Pet.war */ . )

部署Pet.war檔案非常簡單,将剛才xml檔案中的docBase ="F:/PetWeb" 更改為docBase ="F:/Pet.war" 或者直接将其拷貝到webapps目錄下就可以。然後重新啟動伺服器就可以将Pet.war部署為一個Web應用程式了。

如果你夠細心的話你會發現,伺服器将Pet.war檔案解開,并且在webapps下面又生成了一個Pet檔案夾,然後把Pet.war的内容拷貝到裡面去了。我們可以通過以下方式取消自動解壓縮,将xml配置檔案中的unpackWAR 屬性設定為"false" 即可。

二、動态部署

<tomcat-users> 

<role rolename="tomcat"/> 

<role rolename="role1"/> 

<role rolename="manager"/> 

<user username="coresun" password="coresun" roles="manager"/> 

<user username="tomcat" password="tomcat" roles="tomcat"/> 

<user username="both" password="tomcat" roles="tomcat,role1"/> 

<user username="role1" password="tomcat" roles="role1"/> 

</tomcat-users>

Tomcat下使用war包釋出項目

(1)Context Path(option): 中輸入/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(option):中的名字。

(4)如果你部署.war檔案還有更加簡單的方式,下面還有個Select WAR file upload 點選浏覽選擇.war檔案,然後點選Deploy也可以。

讓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目錄下不能直接存放網頁格式的檔案,否則無法通路到該檔案,必須有子目錄才能通路該網頁檔案。

QQ:519841366

本頁版權歸作者和部落格園所有,歡迎轉載,但未經作者同意必須保留此段聲明,

且在文章頁面明顯位置給出原文連結,否則保留追究法律責任的權利

下一篇: 1105-S-Trees