tomcat war包部署


平常的開發我們都是通過IDE進行項目的部署,但有時候我們不得不進行手工部署(例如在Server上)。

手工部署分為以下幾步:

第1步: 用maven打war包 (假如得到的war包名為: appkit-web.war)

mvn package

如果想打包過程中跳過測試,采用以下命令:

mvn package -Dmaven.test.skip=ture

第2步: 把war包拷貝到tomcat安裝的webapps目錄下

cp target/appkit-web.war ~/software/apache-tomcat-7.0.54/webapps/

第3步: 啟動tomcat (我的tomcat的根目錄為:/Users/aborn/software/apache-tomcat-7.0.54)

./bin/catalina.sh run

然后在瀏覽器中打開 http://localhost:8080/appkit-web/index.html

 

這里有個問題,它默認根目錄是要加項目名的,如上加了appkit-web, 這樣有些資源文件加載不出來(因為資源文件是以根目錄為相對路徑)。

要想修改這個根目錄,只要修改Tomcat的server.xml配置文件(它在 conf/server.xml)

在<Host>與</Host>之間加上以下這句話

<Context path="/" docBase="appkit-web" debug="0" privileged="true"/>這個配置的path指的是根目錄,docBase指的是war名。

這樣只要在瀏覽器上打開:http://localhost:8080/index.html 就行了。

 

    <!-- Tomcat Manager Context --> 
     <Context path="/manager" docBase="manager" debug="0"privileged="true"/> 
    path="" 為部署后運行的url路徑,docBase為你的war的文件名。 第一次運行的時候,tomcat會自動解壓war,生成path指定名稱的網站。

    這里docBase中的"manager"就表示war文件名稱為“manager.war"

 

 

修改server.xml在tomcat下部署多個WEB工程  

 

第一步:

server.xml 修改如下:

<Host name="localhost"  appBase="WebRoot" 
unpackWARs="true" autoDeploy="true" 
           xmlValidation="false" xmlNamespaceAware="false"> 
<Context path=""  docBase="F:\myeclipse8work\teset\WebRoot"
workDir="F:\java\tomcat-work" reloadable="true"> 
</Context> 
</Host>
<Host name="zhangda"  appBase="WebRoot" 
unpackWARs="true" autoDeploy="true" 
           xmlValidation="false" xmlNamespaceAware="false"> 
<Context path=""  docBase="F:\myeclipse8work\hibernate\WebRoot"
workDir="F:\java\tomcat-work2" reloadable="true"> 
</Context> 
</Host>   

wordDir  是設置不同項目的緩存目錄,不同的項目設置不同緩存目錄。
第二步:

 在C:\Windows\System32\drivers\etc下找到hosts文件,修改如下內容:

127.0.0.1   localhost

127.0.0.1  zhangda

去掉前面的“#”。

第三步:

在瀏覽器輸入:http://localhost:8080 可以訪問  F:\myeclipse8work\teset\WebRoot  內容。

在瀏覽器輸入:http://zhangda:8080 可以訪問 F:\myeclipse8work\hibernate\WebRoot 內容。

 

tomcat server.xml配置

一、修改端口
Tomcat默認的WEB端口為8080,我一般喜歡把它改成80,當然這是完全沒有必要的
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
注意是修改HTTP協議的,也就是protocol="HTTP/1.1"的,不是其他的。
二、增加虛擬目錄
1、最簡單的方式:直接把JavaEE網站放在$CATALINA_HOME/webapps目錄下了,然后通過http://localhost/WebName,WebName為網站的目錄名
2、自定義:把網站放在其它的目錄下,比如放在/var/www/webapp目錄下,那么就要修改server.xml了。
在</Host>前增加以下內容即可:
<Context path="/SpringMVC" docBase="/var/www/webapp/SpringMVC" workDir="/var/www/webtmp/SpringMVC" debug="5" reloadable="false" crossContext="true" />
則可以通過http://localhost/SpringMVC訪問了,也就是在主機名為localhost中增加了一個名為SpringMVC的虛擬目錄了,當然,這里的名字完全依個人而定的。
三、增加虛擬主機
其實這才是本文要說的重點,也就是本文開頭說的那種案例。我們每開發一個網站,都是通過http://localhost/WebName的形式訪問,是不是很麻煩?
1、修改hosts文件,增加主機名
(1)Linux系統的hosts文件為/etc/hosts
(2)Windows系統的hosts文件為C:\WINDOWS\system32\drivers\etc\hosts
比如你想增加www.local.com主機,則在此文件中增加一行:127.0.0.1 www.local.com,也就是說當你訪問www.local.com時,其實是訪問127.0.0.1;
我比較喜歡簡短的域名,所以我增加的是:127.0.0.1 SpringMVC
2、修改配置文件
在</Host>后再增加一個Host結點:
<Host name="SpringMVC" appBase="/var/www/webapp/SpringMVC" unpackWARs="true" autoDeploy="false" xmlValidation="false" xmlNamespaceAware="false" />
即增加了一個名為SpringMVC的虛擬主機,當然也可以是name="www.local.com",這個根據具體情況定。
這樣,訪問的IP就是:http://SpringMVC了。
3、目錄設置
主機SpringMVC的WEB文件全放在/var/www/webapp/SpringMVC目錄下,在該目錄下增加ROOT目錄,放入你的JavaEE網站工程,這樣,你就可以通過http://SpringMVC訪問你的網站了,后面少了/SpringMVC這個字串,在IP上與運行環境保持了一致。
四、其它問題
通過http://SpringMVC訪問的是SpringMVC網站;
通過http://localhost訪問的是Tomcat自帶的網站;
我們在hosts文件中已經知道,SpringMVC和localhost都對應的IP是:127.0.0.1
那么,通過http://127.0.0.1訪問的是那個網站呢?
在Host的父節點是:<Engine name="Catalina" defaultHost="SpringMVC">
從上可以看出,defaultHost="SpringMVC"決定了127.0.0.1訪問哪個網站,我的設置是訪問SpringMVC

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM