Tomcat5的web應用啟動順序詳解

發表于:2007-06-22來源:作者:點擊數: 標簽:
摘要: 應用 Tomcat 對于我們來講實在是司空見慣了,但是對于每個使用者來講,應該了解其運轉的機制也是必不可少的,本人在維護"apache 開源 項目"論壇時遇到此問題,并略作研究,望與大家共討、分享。 一、配置自動部署時的web應用加載順序: 當tomcat的server

   
  摘要:
  
  應用Tomcat對于我們來講實在是司空見慣了,但是對于每個使用者來講,應該了解其運轉的機制也是必不可少的,本人在維護"apache開源項目"論壇時遇到此問題,并略作研究,望與大家共討、分享。
  

  一、配置自動部署時的web應用加載順序:
  
  當tomcat的server.xml中對虛擬主機(Host)配置中autoDeploy=true和unpackWARs=true時,如:
  server.xml
  ...<Host name="localhost" debug="0" appBase="webapps"
  unpackWARs="true" autoDeploy="true"
  xmlValidation="false" xmlNamespaceAware="false">...
  
  下面的部署順序在Tomcat啟動時發生:
  
  1。任何具有上下文描述符(Context Descriptors)的web應用首先被部署,tomcat在$CATALINA_HOME/conf/[enginename]/[hostname]/目錄中羅列出所有的以xml為結尾的文件,將其作為web應用的上下文描述符,并按照文件名排序逐一部署。
  
  注意作為上下文描述符的文件名可以不為web應用名,因為tomcat會讀取其中的內容來判斷,但是改變上下文描述符的文件名會使部署的順序發生變化。
  
  如:
  $CATALINA_HOME\conf\Catalina\localhost\devoffer.xml
  
  <?xml version='1.0' encoding='utf-8'?><Context docBase="E:/eclipse3.1RC3/workspace/devOfferProject/web" path="/devoffer" useNaming="false" workDir="work\Catalina\localhost\devoffer"></Context>
  
  上面的上下文描述符說明了devoff這個web應用的docBase和部署的path以及其工作目錄。
  
  2。另外,位于$CATALINA_HOME/webapps/[webappname]/META-INF/目錄中的context.xml也作為上下文描述符使用,在處理了上文所說的位于$CATALINA_HOME/conf/[enginename]/[hostname]/目錄中的上下文描述符后,tomcat將部署這些在web應用的META-INF目錄中的context.xml。加載順序按照應用名的字母順序。
  
  3。沒有上下文描述符的已經被展開的web應用將按照其應用名順序逐個被部署,如果其中的一個web應用關聯著一個在appBase(一般為"$CATALINA_HOME/webapps"目錄)中的WAR文件,則當WAR文件比相對應的被展開的web應用新時,那個被展開的web應用將被刪除,tomcat將WAR文件展開并部署作為替換舊的web應用。
  
  4。在執行了1-3步后,tomcat將部署在appBase中的WAR文件。
  
  請注意:在每個應用被部署后,tomcat為沒有上下文描述符的web應用建立上下文描述符。
  
  二、非自動部署配置下的應用加載順序:
  
  此時完全按照在tomcat manager中人工部署順序。
  
  三、參考資源:
  
  http://tomcat.apache.org/tomcat-5.5-doc/deployer-howto.html

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97