The Ja-Jakarta ProjectTomcat Servlet/JSP コンテナ

リンク

ユーザガイド

リファレンス

Tomcat開発

Tomcat5 サーブレット/JSP コンテナ

デプロイヤの使い方

Printer Friendly Version
印刷用
バージョン
目次

はじめに
コンテキスト XML 記述子
Tomcat 起動時の配備
Tomcat サーバ実行中の配備
クライアントデプロイヤパッケージを使った配備

はじめに

デプロイヤはその名の通り、Tomcat サーバに対して Web アプリケーションの配備 (デプロイ) や配備解除 (アンデプロイ) を行います。 これらの処理は静的にも行えます (サーバが起動する前にアプリケーションがセットアップされます) し、 動的にも行えます (Tomcat Manager Web アプリケーションと連動したり、 配備済みのアプリケーションを操作したりします)。

コンテキスト記述子

コンテキスト XML 記述子は、妥当なコンテキスト要素をもつ XML データの一部で、 通常はメインのサーバ設定ファイル (conf/server.xml) にあり、これによって、 Tomcat で使われる様々な管理ツールでの Web アプリケーションの容易な操作や自動化を実現しています。 特定のホストに関しては、コンテキスト記述子は $CATALINA_HOME/conf/[enginename]/[hostname]/foo.xml で設定されます [foo は任意の名前]。 ファイル名は Web アプリ名に紐づいてはいませんが、 Tomcat がコンテキスト記述子を生成する場合はいつも Web アプリ名に合わせた名前でファイルを作成することに注意して下さい。

コンテキスト記述子を使うと、 ネーミングリソースやセッションマネージャ設定といった、 コンテキストのあらゆる側面と設定パラメータの全てを定義できます。 コンテキスト要素で指定された docBase の参照先は、WAR ファイルそのものか、 WAR ファイルが展開される際に作成されるディレクトリのどちらかです。

Tomcat 起動時の配備

ホストの appBase にある Web アプリは、ホストの "deployOnStartup" プロパティが true の場合に配備されます。配備の実行順序は以下の通りです。

  • まず、コンテキスト XML の宣言 [で参照される Web アプリ] が配備される。
  • 次に、コンテキスト XML の宣言で参照されない、 展開済みの Web アプリケーションが配備される。関連する WAR ファイルがあって、展開済みの Web アプリケーションより新しければ、 展開済みのディレクトリは削除され、 Web アプリは WAR ファイルから再配備される。
  • WAR ファイルが配備される。
既に作成されている場合を除き、 配備された各 Web アプリケーションには対応するコンテキスト XML 記述子が作成されます。

Tomcat サーバ実行中の配備

ホストの "autoDeploy" プロパティが true の場合ホストは、 Web アプリケーションの配備や更新を必要に応じて動的に行おうとします。 (デフォルトの) 自動リロードを動作させるためには、 そのホストでバックグラウンド処理が可能である必要があります。

その内容は以下の通りです。

  • ホストの appBase にコピーされた WAR ファイルを配備。
  • ホストの appBase にコピーされた 展開済み Web アプリケーションを配備。
  • WAR ファイルが更新された場合、 WAR ファイルで配備された Web アプリケーションを再配備。つまり、展開された Web アプリケーションが削除され、WAR ファイルの展開が再び行われる。 WAR ファイルが展開されないように設定されている場合にはこの処理は行われず、 単に Web アプリが再配備されるだけである。
  • /WEB-INF/web.xml ファイルが更新された場合、 Web アプリケーションを再配備。
  • Web アプリケーションの配備で使用したコンテキスト XML ファイルが更新された場合、Web アプリケーションを再配備。
  • (以前に配備されたアプリケーションのコンテキストパスに対応した名前の) コンテキスト XML ファイルが $CATALINA_HOME/conf/[enginename]/[hostname]/ フォルダに追加された場合、Web アプリケーションを再配備。
注意: Web アプリケーションの再ロードは、ローダでも設定できます。 その場合は、ロードされたクラスの変更が監視されます。

クライアントデプロイヤパッケージを使った配備

クライアントデプロイヤは、Web アプリケーションの検証、コンパイル、 本番または開発サーバへの配備に使用できるパッケージです。 この機能では、自動配備のために Tomcat マネージャを使うことに注意して下さい。

デプロイヤに含まれているのは、Catalina マネージャの Ant タスク、 配備前に JSP のコンパイルを行う Jasper ページコンパイラ、 そしてWeb アプリの配備記述子を検証するタスクです。 検証タスク(org.apache.catalina.ant.ValidatorTask クラス) で指定できるパラメータはただ一つ、 展開された Web アプリケーションの基底パスだけです

パックされていない [WAR ファイルになっていない] Web アプリケーションをデプロイヤは入力として使います (デプロイヤで使用するプロパティ一覧 (後述) を参照)。 /META-INF/context.xml にコンテキスト設定 XML ファイルをインクルードすることで、 デプロイヤで自動的に配備される Web アプリケーションに Tomcat 特有の配備設定を含めることができます。

デプロイヤパッケージにはすぐに使える Ant スクリプトが入っており、 以下のようなターゲットがあります。

  • compile (デフォルト): Web アプリケーションのコンパイルと検証を行います。 このタスクは単独で使用可能で、Tomcat サーバが起動している必要はありません。 コンパイルされたアプリケーションは関連する Tomcat 5.0.x サーバでのみ動作し、他の Tomcat リリースでの動作は保証されません。 Jasper が生成するコードがその実行時コンポーネントに依存するためです。 また、このターゲットでは Web アプリケーションの /WEB-INF/classes フォルダにある Java ソースファイルをすべて自動コンパイルすることにも注意して下さい。
  • deploy: Web アプリケーションを (コンパイル済かどうかに関係なく) Tomcat サーバに配備します。
  • undeploy: Web アプリケーションの配備解除を行います。
  • start: Web アプリケーションを起動します。
  • reload: Web アプリケーションを再ロードします。
  • stop: Web アプリケーションを停止します。
システムプロパティあるいはデプロイヤパッケージのルートフォルダにある deployer.properties ファイルで以下のプロパティを指定できます。
  • build: デフォルトのビルドフォルダは ${build}/webapp${path} となります。compile ターゲットの実行終了後、Web アプリケーションは、 ${build}/webapp${path}.war という WAR ファイルとなります。
    [訳注: path変数の値はスラッシュ(/)付きで指定する必要があるため、 webappの後ろにはスラッシュが記述されていません。]
  • webapp: コンパイル・検証された展開済み Web アプリケーションの入っているフォルダ。デフォルトでは myapp です。
  • path: Web アプリケーションの配備されたコンテキストパスで、 デフォルトでは /myapp です。
  • url: 実行中の Tomcat サーバの マネージャ Web アプリケーションの絶対 URL で、 Web アプリケーションの配備や配備解除で使用されます。 デフォルトでデプロイヤは、ローカルホストで実行される Tomcat インスタンスに http://localhost:8080/manager でアクセスしようとします。
  • username: Tomcat マネージャへの接続で使うユーザ名。
  • password: Tomcat マネージャへの接続で使うパスワード。


[訳注: この文書は高橋達男が翻訳し、 田中良浩が校正しました。 日本語訳に対するコメントがあれば、report@jajakarta.orgに送って下さい。]
Copyright © 1999-2003, Apache Software Foundation