天天看點

Tomcat 正式環境下多個Context配置

終于搞懂了TOMCAT/config/server.xml裡關于HOST和Context的問題了!!!!!

起因是因為quartz定時器總是被執行2次,還是同一個線程,查了半天說是加載了兩次,雖然改了下是成功了,但是還是有點不明是以!

吃完午飯,無意中,把這個問題整明白了點!

直接上例子:

1.隻有Host沒有Context

那麼會部署tomcat/webapp下的所有項目(或者說檔案夾:ROOT,PLAYER,項目1,項目2...)

會直接帶上檔案夾名字作為屬性,

特别提示ROOT的優先級高,會省去ROOT這個名字

即:

localhost:8080/項目1/...

localhost:8080/項目2/...

localhost:8080/(ROOT)xxx

<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="false" deployOnStartup="false"></Host>

2.指定了一個Context,path=""

那麼會将appBase與path拼接, docBase是你檔案夾的名字,path是你的通路路徑

這裡path="" 那麼通路路徑就是 ...(webapps)/方法...(localhost:8080/add)

<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="false" deployOnStartup="false">

<Context path="" docBase="aaa" debug="0" reloadable="true"/>

</Host>

3.指定了一個Context,path="xxx"

appBase+path拼接, docBase是你檔案夾的名字,path是你的通路路徑

這裡path="xxx" 那麼通路路徑就是 ...(webapps)/xxx/方法...(localhost:8080/xxxx/add)

<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="false" deployOnStartup="false">

<Context path="" docBase="book" debug="0" reloadable="true"/>

</Host>

4.指定了多個Context,那就必須都配上path

有多個context,就要配上多個path,這樣才能根據不同的項目走不通的路徑

也就是說

testa檔案夾走的是localhost:8080/aaa/...

testb檔案夾走的是localost:8080/bbb/...

<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="false" deployOnStartup="false">

<Context path="aaa" docBase="testa" debug="0" reloadable="true"/>

<Context path="bbb" docBase="testb" debug="0" reloadable="true"/>

</Host>

注:

autoDeploy="false" deployOnStartup="false"這兩個選項都為true的時候(一般預設autoDeploy為true)

這時候會自動加載/部署

<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="ture" >

<Context path="" docBase="aaa" debug="0" reloadable="true"/>

</Host>

我之前就是這樣子配置,是以走了2遍

第一遍:webapp下所有的檔案夾部署(雖然我隻有一個aaa檔案夾)(localhost:8080/aaa/add...)

第二遍:指定aaa檔案夾又走了一遍,且path為空(localhost:8080/add...)

這兩個域名都能走!!!

==================================

部落客:http://blog.csdn.net/jibaole/article/details/52765249

Tomcat中給server.xml加入<Context>元素

<Context>代表了運作在<Host>上的單個Web應用,一個<Host>可以有多個< Context>元素,每個Web應用必須有唯一的URL路徑,這個URL路徑在<Context>中的屬性

path中設定。<Context>元素的屬性: 

path:指定通路該Web應用的URL入口,如:http://127.0.0.1:8080/helloApp1。 

docBase:指定Web應用的檔案路徑,可以給定絕對路徑,也可以給定相對于<Host>的appBase屬性的相對路徑,如果Web應用采用開放目錄結構,則指定Web應用的根目錄,如果Web應用是個war檔案,則指定war檔案的路徑。

reloadable:如果這個屬性設為true,tomcat伺服器在運作狀态下會監視在WEB-INF/classes和WEB-INF/lib目錄下class檔案的改動,如果監測到有class檔案被更新的,伺服器會自動重新加載Web應用。

在開發階段将reloadable屬性設為true,有助于調試servlet和其它的class檔案,但這樣用加重伺服器運作負荷,建議在Web應用的釋出階段将reloadable設為false。