在 Tomcat 中部署 Java Web 程式 ( jar cvf *.war */. ) war 包

來源:互聯網
上載者:User

本文基本轉自:http://www.blogjava.net/ocean07000814/articles/331694.html 

主要講的是在 Tomcat 中部署 Java Web 應用程式。因為重點是如何部署,所以暫且先不介紹怎樣開發 Web 應用程式和怎樣啟動 Tomcat 伺服器,也不考慮使用的什麼開發工具,總之在練習本文所說的例子之前,你應該有一個 Java Web 應用程式。本文假定 Web 應用程式的根目錄為 HelloProject 。而且存放在 C:\Documents and Settings\Administrator\workspace 下, 目錄結構

 

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

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

一、靜態部署
    靜態部署指的是我們在伺服器啟動之前部署我們的程式,只有當伺服器啟動之後,我們的Web應用程式才能訪問。以下3中方式都可以部署:
    1、將 HelloProject 目錄拷貝到 $CATALINA_HOME\webapps 下,然後啟動伺服器就可以了。這種方式 是最簡單的一種方式,訪問地址如下:http://localhost:8080/HelloProject 

    2、這種方式可以不必將 HelloProject 目錄拷貝到 webapps 下,直接在 C:\Documents and Settings\Administrator\workspace 部署。
    方法如下,更改 $CATALINA_HOME\conf\server.xml 檔案,在 <host> 標籤內添加 <Context> 標籤,內容如下:
    <Context docBase="C:\Documents and Settings\Administrator\workspace\HelloProject" reloadable="false" path="/HP"/>
    其中 reloadable="false" 表示當應用程式中的內容發生更改之後伺服器不會自動載入,這個屬性在開發階段通常都設為 true,方便開發,在發布階段應該設定為 false,提高應用程式的訪問速度。
    docBase 為項目存放的路徑,可以使用絕對路徑,也可以使用相對路徑,相對路徑相對於 webapps。path 屬性的值是訪問時的根地址。訪問地址如下:http://localhost:8080/HP

    說明:如果 HelloProject 下有 WebContent 目錄,

   

    那麼下邊的配置都可以,且訪問路徑要對應
    <Context docBase="C:\Documents and Settings\Administrator\workspace\HelloProject" reloadable="false" path="/HP"/> 訪問地址:http://localhost:8080/HP/WebContent
    <Context docBase="C:\Documents and Settings\Administrator\workspace\HelloProject\WebContent" reloadable="false" path="/HPT"/> 訪問地址:http://localhost:8080/HPT
    <Context docBase="C:\Documents and Settings\Administrator\workspace\HelloProject" path="/HelloProject" reloadable="true" /> 訪問地址:http://localhost:8080/HelloProject

    在 <Content docBase=”..”path=”…” workDir=”…” /> 中 workDir 是部署後 jsp 發布的目錄,可以自己隨便指定,或不指定。

    3、這種方式和第二種方式差不多,但是不是在 Server.xml 檔案中添加 Context 標籤,而是在 $CATALINA_HOME\conf\Catalina\localhost 中添加一個 xml 檔案,
    如 HP.xml,內容如下:<Context docBase="C:\Documents and Settings\Administrator\workspace\HelloProject" reloadable="false" /> 大家可能發現和第二種方式差不多,
    但是缺少了 path 屬性,這種方式伺服器會使用 .xml 的名字作為 path 屬性的值。訪問地址如下:http://localhost:8080/HP

    在看  *.war  的講解和部署
    我們剛才是將 HelloProject 檔案夾部署在了伺服器中,我們知道可以將 Web 應用程式的內容打成 *.war 包,然後在部署在伺服器上。
    打包請參考如下步驟:
    1、開啟命令提示字元(Start –> Run –> cmd)
    2、設定 jdk 環境變數 (如果是設定好的,可以省略此步)
    3、在命令提示字元中進入 C:\Documents and Settings\Administrator\workspace\HelloProject 檔案後,鍵入如下命令: jar cvf PHT.war */.       
    這樣在目前的目錄下該有 PHT.war 檔案。其中  .. 表示目前的目錄的父目錄。命令列和目錄結構

   
   
     
    部署 PHT.war 檔案非常簡單,
    (1) 將剛才有 docBase="C:\Documents and Settings\Administrator\workspace\HelloProject" 更改為docBase="C:\Documents and Settings\Administrator\workspace\HelloProject\PHT.war"
    (2) 或者直接將其拷貝到 webapps下也可以。
    重新啟動伺服器就可以將 PHT.war 部署為一個 Web 應用程式了。
    如果你夠細心的話你會發現,伺服器將 PHT.war 檔案解開,並且在 webapps 下面又產生了一個 PHT 檔案夾,然後把 PHT.war 的內容拷貝到裡面去了。
    我們可以通過以下方式取消自動解包,配置方式如下:
    <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
        <!--  將其中的 unpackWARs=”true” 改成 false 就 ok 了 –>
        <Context …. />
   
    </Host>

二、動態部署

    動態部署是指可以在伺服器啟動之後部署 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"/><!--  這個是自己加的,tomcat7 為 manager-gui   -->
        <user username="admin" password="admin" roles="manager"/><!--  這個是自己加的,tomcat7 為 manager-gui   -->
        <user username="tomcat" password="tomcat" roles="tomcat"/>
        <user username="both" password="tomcat" roles="tomcat,role1"/>
        <user username="role1" password="tomcat" roles="role1"/>
    </tomcat-users>
    然後在瀏覽器中鍵入如下地址:http://localhost:8080/ 點擊 Tomcat Manager 連結,提示輸入使用者名稱和密碼,本文都是 admin,然後可以看到以下頁面:

在 ------>

1、Context Path(required):中輸入 /HP
2、XML Configration file URL 中要指定一個 *.xml 檔案,比如我們在 D:\ 下建立一個 PH.xml 檔案,內容如下: <Context reloadable="false" />  docBase不用寫了,因為在下一個文字框中填入。
或者更簡單點,這個文字框什麼都不填。
3、在 WAR or Directory URL:中鍵入 C:\Documents and Settings\Administrator\workspace\HelloProject 或者 C:\Documents and Settings\Administrator\workspace\HelloProject\PHT.war 都可以,然後點擊 Deploy 按鈕,看看上面是不是已經看到了你 web 應用程式,名字就是你 Context Path(required):中的名字。
4、如果你部署 *.war 檔案還有更加簡單的方式,下面還有個 Select WAR file upload 點擊瀏覽選擇 *.war 檔案,然後點擊 Deploy 也可以。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.