1. 程式人生 > >Tomcat 正式環境下多個Context配置

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。

相關推薦

Tomcat 正式環境Context配置

終於搞懂了TOMCAT/config/server.xml裡關於HOST和Context的問題了!!!!!起因是因為quartz定時器總是被執行2次,還是同一個執行緒,查了半天說是載入了兩次,雖然改了下

linux環境檔案編譯

1.在編寫C程式時,使用UTF-8格式。 od -tc test.c winhex,可以開啟檔案儲存方式。 2.編寫H檔案時,需要有#endif error: unterminated #ifndef:https://blog.csdn.net/lele2426/article/deta

Linux環境庫svn安裝與配置(獨立庫,配置檔案)

[先在伺服器中開啟放行 3690 埠!!!] (1)檢視是否已經安裝了svn 命令:svnserve --version 沒有安裝,出現下面資訊-> 已經安裝,出現下面版本資訊-> 檢視安裝svn的路徑資訊:rpm -ql subversion

log4j在tomcat工程的log4j.properties配置

關於tomcat下多個工程配置一個log4j.properties,達到輸出各自的日誌的問題, 經過實際工作的總結和調查,在這裡做出一個總結和備忘。 提起log4j的配置,我們常用的配置辦法是為每個工程建立一個log4j.properties檔案,並在其中寫入自己的輸出日

一個解決方案 工程 每個工程的環境變數的配置

背景: 一個解決方案下有多個工程,在環境變數中,已經添加了BoostDir和BoostLibs這兩個環境變數。 問題: WorkStation工程中使用的boost的環境變數名字為BoostDir和BoostLibs。 編譯整個解決方案下的所有工程的時候,發現,依然無法識

tomcatweb應用使用相同的log4j的jar包,如何避免配置檔案發生衝突

我們在開發的時候通常會遇到再同一個伺服器下開發多個應用的情況,在公共jar包統一載入的情況下,如果log4j.properties配置不當,經常會發生多個應用的log日誌都列印到一個檔案裡了,如果配置檔案配置的是輸出所有log列印,那麼web應用的載入順序就是導致這個問題的

WindowsMysql實例配置主從

ims logs mys oca 文件 家裝 應該 存在 停止 序: 網上有很多類似的文章,也是各種百度出來的,但是對於多數剛開始接觸MYSQL主從的小白來說,網上文章的代碼裏面很多技術點都沒有理解,有跌打誤撞碰上的,但

radhat7使用targetcli為啟動器配置iSCSI訪問控制

Linux targaecli iSCSI 測試環境說明: 測試環境一共使用4臺服務器,兩臺Linux、兩臺Windows,一臺Linux做為iSCSIServer,用Targetcli以iSCSI的方式提供存儲共享服務,另外三臺使用iSCSIServer上的存儲資源,各自訪問各自的資源,相互

WindowsMysql實例配置主從(轉)

local 定期 spa root lan 百度 data- ast 迷糊 https://www.cnblogs.com/jpfss/p/8143720.html 序: 網上有很多類似的文章,也是各種百度出來的,但是對於多數剛開始接觸MYSQL主從的小白來說,

lnmp環境一臺伺服器配置專案,介面訪問時返回資料但header頭status code=500

公司一個軟體專案微信客戶端本人開發用了thinkphp3,一個api配合客戶端app使用用了thinkphp5,兩個不可合二為一,只能在一臺伺服器上配置一個客戶端入口,一個api入口。 第一步:伺服器建立平行的兩個目錄,分別放上面兩個框架的程式碼; 第二步:nginx配置訪問入口,在/etc

Linux環境庫svn安裝與配置(獨立庫,公用一個配置檔案)

[先在伺服器中開啟放行 3690 埠!!!] (1)檢視是否已經安裝了svn 命令:svnserve --version 沒有安裝,出現下面資訊-> 已經安裝,出現下面版本資訊-> 檢視安裝svn的路徑資訊:rpm -ql subversion

linux上同tomcat伺服器佈署靜態網站專案配置訪問連結

這 裡我的環境是linux  兩個專案都已經上傳成功。 開啟tomcat 的 conf目錄下的 server.xml 檔案 1、 找到Host節點  2、在該節點下配置兩個專案的訪問路徑 <Context path="/" docBase="/usr/loc

Linux佈置Tomcat,同時執行Tomcat

轉載這個老哥的https://www.cnblogs.com/webcc/archive/2012/08/22/2651084.html扣號內是我自己操作時的一些問題和決解方法。環境說明:作業系統:  RedHet 5.3JDK版本:  1.4.2WEB容器:    Tomc

Tomcat -- Context啟動衝突的問題解決

啟動Tomcat時,如果部署多個Web應用,可能會看到如下異常資訊: Exception sending context initialized event to listener instance of class org.springframewor

nginx反向代理到一個tomcat專案session衝突

今天公司測試伺服器遇到了一點問題測試環境在一個tomcat下部署了多個專案 通過nginx來訪問 nginx反向代理時為了能夠獲取到cookie將每個專案的cookie地址都對映到/目錄下 而專案的登入資訊是儲存到session中了 後臺將傳遞一個sessionid存到coo

NGINX 配置 轉發tomcat二級域名的專案

基於原始文件基礎修改 user nobody; worker_processes 1; error_log logs/error.log; error_log logs/error.log notice; error_log l

在windowstomcat例項註冊成windows服務

以下內容僅作為個人備忘和參考!以下用綠色版tomcat7.0.62來說明。 第一個tomcat服務無所謂,直接用service.bat install 註冊,一切都預設; 第二個和以後的需要修改service.bat檔案(%CATALINA_HOME%/bin目錄下),步驟

windows環境nginx的入門配置跳轉tomcat

大家好,我是烤鴨:    windows下配置nginx的目的就是要本地跟線上環境儘量保持一致。1.    下載我這裡用的是nginx-1.13.0,看一下目錄結構2.    nginx關閉指令碼這裡的nginx-killer就是一個kill nginx執行緒的指令碼,裡邊的

nginx 同一域名 tomcat應用

同一域名www.xxxxx.comhttp://localhost:8080   存放專案名為ROOT    結果訪問為:www.xxxxx.comhttp://localhost:8081   存放專案為aiwen        結果訪問為:www.xxxxx.com/ai

Windows環境QWT安裝及配置

blog data popu build design dem 用戶 script ava ** 1.QWT下載路徑 **:https://sourceforge.net/projects/qwt/ 主要下載這三個文件:qwt-6.1.2.zi