熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

Tomcat5的web應用啟動順序詳解

2013-11-23 20:21:21  來源: Java開源技術 

  摘要
  
  應用Tomcat對於我們來講實在是司空見慣了但是對於每個使用者來講應該了解其運轉的機制也是必不可少的本人在維護apache開源項目論壇時遇到此問題並略作研究望與大家共討分享
  
  配置自動部署時的web應用加載順序
  
  當tomcat的serverxml中對虛擬主機(Host)配置中autoDeploy=true和unpackWARs=true時
  serverxml
  <Host name=localhost debug= appBase=webapps
  unpackWARs=true autoDeploy=true
  xmlValidation=false xmlNamespaceAware=false>
  
  下面的部署順序在Tomcat啟動時發生
  
  任何具有上下文描述符(Context Descriptors)的web應用首先被部署tomcat在$CATALINA_HOME/conf/[enginename]/[hostname]/目錄中羅列出所有的以xml為結尾的文件將其作為web應用的上下文描述符並按照文件名排序逐一部署
  
  注意作為上下文描述符的文件名可以不為web應用名因為tomcat會讀取其中的內容來判斷但是改變上下文描述符的文件名會使部署的順序發生變化
  
  如
  $CATALINA_HOME\conf\Catalina\localhost\devofferxml
  
  <?xml version= encoding=utf?><Context docBase=E:/eclipseRC/workspace/devOfferProject/web path=/devoffer useNaming=false workDir=work\Catalina\localhost\devoffer></Context>
  
  上面的上下文描述符說明了devoff這個web應用的docBase和部署的path以及其工作目錄
  
  另外位於$CATALINA_HOME/webapps/[webappname]/METAINF/目錄中的contextxml也作為上下文描述符使用在處理了上文所說的位於$CATALINA_HOME/conf/[enginename]/[hostname]/目錄中的上下文描述符後tomcat將部署這些在web應用的METAINF目錄中的contextxml加載順序按照應用名的字母順序
  
  沒有上下文描述符的已經被展開的web應用將按照其應用名順序逐個被部署如果其中的一個web應用關聯著一個在appBase(一般為$CATALINA_HOME/webapps目錄)中的WAR文件則當WAR文件比相對應的被展開的web應用新時那個被展開的web應用將被刪除tomcat將WAR文件展開並部署作為替換舊的web應用
  
  在執行了步後tomcat將部署在appBase中的WAR文件
  
  請注意在每個應用被部署後tomcat為沒有上下文描述符的web應用建立上下文描述符
  
  非自動部署配置下的應用加載順序
  
  此時完全按照在tomcat manager中人工部署順序
  
  參考資源
  
  doc/l
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28368.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.