もしも君が標準的な Host 実装を使っているならば,Catalina が最初にスタートした時,
次のアクションが自動的に起こる。
ただし,deployOnStartup プロパティが true にセットされているならばである
(デフォルト値はそうなっている):
-
$CATALINA_HOME/conf/[engine_name]/[host_name] ディレクトリのどの XML ファイル
も,1個の Context 要素 (と随伴するその下位要素) を1個の web
アプリケーションのために持っていると仮定される。
この <Context> 要素の docBase 属性は典型的には
web アプリケーション・ディレクトリの絶対パス名か,
または (展開されない) WAR (web application archive) ファイルの絶対パス名である。
path 属性が
Context のドキュメンテーションで定義されたように自動的にセットされる。
-
appBase (application base) ディレクトリ内のどの WAR ファイルも,
もしも対応する同じ名前のディレクトリ (".war" 拡張子を除く) がなければ自動的に展開される。
ただし,
unpackWARs プロパティが false にセットされていなければである。
もしも君が更新した WAR ファイルを再デプロイするならば,
更新した WAR ファイルが再展開されるように,
Tomcat を再スタートするとき,展開されたディレクトリを忘れずに削除すること
(自動デプロイヤがイネーブルならば,更新された WAR ファイルは,以前に展開されたディレクトリが
除去された途端に自動的に展開されることに注意せよ)。
-
application base directory 内のどの下位ディレクトリも,
自動生成された Context 要素を受け取る。
たとえそのディレクトリが
conf/server.xml ファイルで言及されていなくてもである。
この生成された Context エントリは,この Host 要素で入れ子にされた
DefaultContext 要素がセットするプロパティにしたがって設定される。
このデプロイされた Context の context path はスラッシュ文字 ("/") にディレクトリ名を続けたものになる。
ただし,ディレクトリ名が ROOT の場合は,context path は空文字列 ("") になる。
スタートアップ時に起こる自動デプロイメントに加えて,
君は,新しい XML 設定ファイル,WAR ファイル,または下位ディレクトリが appBase
(または XML 設定ファイルの場合は $CATALINA_HOME/conf/[engine_name]/[host_name])
ディレクトリに,Tomcat が走っているあいだにドロップされたとき,
上述の規則にしたがって自動的にデプロイされることを要求してよい。
自動デプロイヤはまた web アプリケーションを次の変更に対し追従する:
-
WEB-INF/web.xml の更新は web アプリケーションの再ロードを引き起こす。
-
WAR の更新は,(展開されたディレクトリを除去せずに) デプロイ解除を引き起こし,
直後にその web アプリケーションのデプロイメントが続く。
-
XML 設定ファイルの更新は,(展開されたディレクトリを除去せずに) デプロイ解除を引き起こし,
直後にその web アプリケーションのデプロイメントが続く。
自動デプロイメントを使うときは,XML Context ファイルが定義する docBase
を,appBase ディレクトリの外側にすべきである。
そうしなければ,web アプリケーションをデプロイするときに難儀したり,
アプリケーションが2度デプロイされるかもしれない。
最後に,もしも君が context を陽に定義するならば,おそらく自動アプリケーション・デプロイメントは切ったほうがよい。
そうしなければ,君の contxt は毎回2度デプロイされることになるから,
アプリケーションに問題を引き起こすかもしれない。