« Deployer(デプロイヤ)としてのTomcat ~設定ファイル編(1)~ | 記事一覧へ | チネミ号、榎本牧場へ ~全体編~ »

2007年05月29日

●Deployer(デプロイヤ)としてのTomcat ~設定ファイル編(2)~

[あとで読む]

tomcat-servlet-container2-thumb.jpg

※前編の「~設定ファイル編(1)~」はこちら

-----

server.xmlとコンテキストXMLファイルについて

私がTomcatを使い始めた頃はまだ3.0.xの頃で、コンテキストファイルでの設定なんて知らなかった。
web.xmlにアプリごとの設定を書いて、サーバ全体の設定はserver.xmlに書く、という認識だった。

ところが、いつのタイミングからかはわからないが(Eclipseが2.x→3.xになったとき?)、EclipseのTomcatの設定項目で、設定ファイルとしてserver.xmlとコンテキストファイルと、どちらか一方を選択できることから、コンテキストファイルの存在を初めて知ったわけである。

Eclipse-tomcat-settings.bmp

Eclipse3.2.0のウィンドウ>設定>Tomcat (クリックで拡大)

コンテキスト記述子の宣言場所

ネットを検索してみると、Ja-jakartaによるTomcat翻訳は5.0までだが、OKIのOSS(Open Source Software)資料室では5.5の翻訳が公開されていた。
5.0と5.5のデプロイヤの部分を読み比べてみたところ、一番驚いたのは一次設定ファイルserver.xmlの非推奨化。

初期版のTomcatではコンテキスト記述子の設定内容はしばしばTomcatの一次設定ファイル server.xml に格納されてました。しかし今はこのやりかたは非推奨です(今のところ以前として動作はしますが)。

いつの間にか。。

ちなみに、コンテキスト記述子の場所は次の通り。


a) $CATALINA_HOME/conf/[固有名(Catalina)]/[ホスト名]/context.xml
b) $CATALINA_HOME/webapps/[webアプリ名]/META-INF/context.xml

最近は、WARファイルを作成する際に、META-INF配下にcontext.xmlも含めるという話をちらっと聞いたことがある。

また、コンテキストが存在していてコンテキスト記述子が用意されていない場合は、
Tomcatにより自動的に a) の代わりとして [webアプリ名].xmlというファイルが作成され、
そのファイル内にコンテキスト記述子が自動作成される。


Tomcatスタートアップ時の配備の優先順位


  1. 全てのコンテキスト記述子(で参照されるWebアプリ)が配備される

  2. コンテキスト記述子で参照されない(記述子がない)展開済みのWebアプリが配備される。
    アプリと同じ名称のWARが存在する場合、ファイルの日付を見て新しい方が配備される
    (WARの方が新しい場合は、展開済みのWebアプリが破棄され、WARが展開&配備される)。

  3. WARファイルが配備される。コンテキスト記述子が自動生成される。

-----
参考URL

OSS資料室より: 「Tomcat Web アプリケーションの配置」
 http://www.oki.com/jp/oss/document/tomcat/tomcat-docs-ja/deployer-howto.html

本家ドキュメント(英文)
 http://tomcat.apache.org/tomcat-5.5-doc/deployer-howto.html

Ja-jakartaによる、5.0ドキュメンテーション翻訳 「デプロイヤの使い方」
 http://www.jajakarta.org/tomcat/tomcat5.0/ja/docs/tomcat-docs/deployer-howto.html

コメントする

※コメント・スパムが多いため、承認制を取っています。
  また、コメント返信がいつも遅くなりがちなのですが、、><
  コメント頂くと、とても嬉しいですので、お気軽にどうぞ♪