Tomcat部署Web應用方法總結

來源:互聯網
上載者:User

標籤:重複   oca   app   自己   選擇   複製   cmd   role   性格   

 

在Tomcat中部署Java Web應用程式有兩種方式:靜態部署和動態部署。

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

一、靜態部署

 

靜態部署指的是我們在伺服器啟動之前部署我們的程式,只有當伺服器啟動之後,我們的Web應用程式才能訪問。

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

1.利用Tomcat自動部署

 

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

訪問地址如下:http://localhost:8080/PetWeb/

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

2.修改Server.xml檔案部署

 

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

找到以下內容:

Xml代碼:

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

path:是訪問時的根地址,表示訪問的路徑;如上述例子中,訪問該應用程式地址如下:http://localhost:8080/Pet/

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屬性值如何設定也是無效的,以xml檔案名稱作為項目的訪問路徑),將以下內容複寫過去,修改相應路徑即可。

Xml代碼:

  1. <Context  path ="/Pet"  docBase ="F:/PetWeb"  
  2.         debug ="0"  privileged ="true"  reloadable ="false"   
  3. </Context>

訪問地址如下:http://localhost:8080/Pet/  

 

 

註: 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" 即可。

 

 

二、動態部署

 

動態部署是指可以在伺服器啟動之後部署web應用程式,而不用重新啟動伺服器。動態部署要用到伺服器提供的manager.war檔案,如果 在$CATALINA_HOME/webapps/下沒有該檔案,你必須去重新下載tomcat,否則不能完成以下的功能。要想使用該管理程式必須首先編 輯$CATALINA_HOME/conf/tomcat-users.xml檔案,內容如下:(關於這個檔案的更多內容,請參考 Java Web應用程式的安全模型二 )

<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> 注意以下這個地方,以上設定在Tomcat7及以下版本是可行的,在tomcat8以後需要使用manager-gui,username最好不要使用tomcat,因為上面已經有了一個tomcat會重複 

 

然後在瀏覽器中鍵入如下地址:http://localhost:8080/ ,應該看到一個加菲貓了吧。點擊左邊的Tomcat Manager連結,提示輸入使用者名稱和密碼,本文都是coresun ,然後可以看到以下頁面:

(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目錄下不能直接存放網頁格式的檔案,否則無法訪問到該檔案,必須有子目錄才能訪問該網頁檔案。
例如:我們直接將index.html放在webapps目錄中,通過瀏覽器http://localhost:8080/index.html 是無法訪問到index.html的。而必須要webapps/petweb/index.html才可以通過http://localhost:8080/petweb/index.html 訪問到index.html頁面。

 

轉自:http://dbajun.iteye.com/blog/2050243

紅色部分是自己對轉自文章的部分修改

Tomcat部署Web應用方法總結

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.