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

リンク

ユーザガイド

リファレンス

Tomcat開発

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

Tomcat Webアプリケーションマネージャの手引き

Printer Friendly Version
印刷用
バージョン
はじめに

Tomcat をシャットダウンして再起動せずに Webアプリケーションを管理できる機能は多くの本番環境で非常に便利です。 このドキュメントは manager Webアプリケーションの HTML による Webインタフェースに関する説明です。

インタフェースは5つのセクションに分かれます。

  • メッセージ - 処理成功/失敗のメッセージを表示します。
  • マネージャ - 一覧表示やヘルプなどマネージャの一般的な操作。
  • アプリケーション - Webアプリケーションとコマンドの一覧。
  • 配備 - Webアプリケーションを配備します。
  • サーバ情報 - Tomcatサーバに関する情報。

メッセージ

直前に実行した Webアプリケーションマネージャのコマンドの成功/失敗に関する情報を表示します。 成功した場合、成功と表示され、 その後にメッセージが続くこともあります。 失敗した場合、失敗と表示され、 その後にエラーメッセージが続きます。 共通の失敗メッセージは各コマンドごとに以下で文書化しています。 各コマンドの失敗メッセージの全一覧はマネージャ Webアプリケーションのドキュメントにあります。

マネージャ

「マネージャ」セクションにはリンクが3つあります。

  • アプリケーションの一覧 - Webアプリケーション一覧を再表示します。
  • HTML Manager Help - このドキュメントへのリンク。
  • Manager Help - マネージャアプリケーションの総合的な手引きへのリンク。

アプリケーション

「アプリケーション」セクションにはインストール済みのすべての Webアプリケーションに関する情報が一覧になっており、 それを管理するリンクも提供されています。 各アプリケーションごとに以下の項目が表示されます。

  • パス - Webアプリケーションのコンテキストパス。
  • 表示名 - Webアプリケーションの表示名。 "web.xml" ファイルで設定されている場合に表示されます。
  • 実行中 - Webアプリケーションが実行中で使用可能 (true) か、それとも実行中でなく使用不可 (false) かを示します。
  • セッション - この Webアプリケーションのアクティブなリモートユーザーセッション数。 セッション数はリンクになっており、クリックすると「メッセージ」セクションに Webアプリケーションでのセッション使用状況に関する詳細が表示されます。
  • コマンド - Webアプリケーションに対して実行するコマンドがすべて表示されます。 実行可能なコマンドのみクリック可能なリンクとして表示されます。 マネージャ Webアプリケーションそのものに対してはコマンドは実行できません。 実行可能なコマンドは以下のとおりです。
    • 起動 - 停止している Webアプリケーションを起動します。
    • 停止 - 現在実行中のWebアプリケーションを停止し、 使用不可にします。
    • 再ロード - Webアプリケーションを再ロードし、 /WEB-INF/lib/ にある新しい ".jar" ファイルや /WEB-INF/classes/ にある新しいクラスを使えるようにします。
    • 配備解除 - この Webアプリケーションを停止し、 このサーバから削除します。

起動

停止したアプリケーションに再起動を指示し、再び使用可能にします。 例えば、アプリケーションで必要なデータベースが一時的に使用不可になった場合、 停止・起動ができると便利です。たいていの場合、 このデータベースを使う Webアプリケーションを停止させた方が、 ユーザに対してデータベース例外を表示し続けるよりは良いでしょう。

このコマンドが成功すると、以下のようなメッセージが表示されます。

成功 - コンテキストパス /examples でアプリケーションを起動しました

そうでなければ、メッセージは 失敗 で始まり、 エラーメッセージが表示されます。問題の原因としては以下のものが考えられます。

  • 例外が発生しました

    Webアプリケーションの起動時に例外が発生しました。 詳細については Tomcat 5 のログをチェックして下さい。

  • 無効なコンテキストパスが指定されました

    コンテキストパスはスラッシュ ("/") で始まらなければなりません。 ROOT Webアプリケーションを参照している場合は例外です -- この場合は、コンテキストパスは長さ0の文字列になります。

  • パス /foo のコンテキストが存在しません

    指定したコンテキストのアプリケーションは配備されていません。

  • コンテキストパスが指定されていません
    path パラメータが必要です。

停止

既存のアプリケーションを使用不可にするよう指示しますが、配備解除はしません。 アプリケーションが停止している時に送られたリクエストの結果はすべて HTTPエラー404 となり、アプリケーション一覧では「実行中」欄に false が表示されます。

このコマンドが成功すると、以下のようなメッセージが表示されます。

成功 - コンテキストパス /examples でアプリケーションを停止しました

そうでなければ、メッセージは 失敗 で始まり、 エラーメッセージが表示されます。問題の原因としては以下のものが考えられます。

  • 例外が発生しました

    Webアプリケーションの起動時に例外が発生しました。 詳細については Tomcat 5 のログをチェックして下さい。

  • 無効なコンテキストパスが指定されました

    コンテキストパスはスラッシュ ("/") で始まらなければなりません。 ROOT Webアプリケーションを参照している場合は例外です -- この場合は、コンテキストパスは長さ0の文字列になります。

  • パス /foo のコンテキストが存在しません

    指定したコンテキストのアプリケーションは配備されていません。

  • コンテキストパスが指定されていません
    path パラメータが必要です。

再ロード

既存のアプリケーションにシャットダウンと再ロードを指示します。 Webアプリケーションコンテキストが再ロード可能になっていなくて /WEB-INF/classes のクラスやプロパティファイルを更新した場合や、 /WEB-INF/lib ディレクトリの JARファイルを更新した場合に便利かもしれません。

注意: /WEB-INF/web.xml の Webアプリケーション設定ファイルは再ロード時にチェックされず、 以前の web.xml の設定が使われます。web.xml ファイルを変更した場合は、 Webアプリケーションを停止・起動しなければなりません

このコマンドが成功すると、以下のようなメッセージが表示されます。

OK - コンテキストパス /examples のアプリケーションを再ロードしました

そうでなければ、メッセージは 失敗 で始まり、 エラーメッセージが表示されます。問題の原因としては以下のものが考えられます。

  • 例外が発生しました

    Webアプリケーションの起動時に例外が発生しました。 詳細については Tomcat 5 のログをチェックして下さい。

  • 無効なコンテキストパスが指定されました

    コンテキストパスはスラッシュ ("/") で始まらなければなりません。 ROOT Webアプリケーションを参照している場合は例外です -- この場合は、コンテキストパスは長さ0の文字列になります。

  • パス /foo のコンテキストが存在しません

    指定したコンテキストのアプリケーションは配備されていません。

  • コンテキストパスが指定されていません
    path パラメータが必要です。
  • パス /foo に配備されたWARファイルでは再ロードがサポートされていません
    たまたまホストでWARファイルを解凍しないように設定されていて、 Webアプリケーションが WARファイルから直接インストールされた場合は、 現在のところ、アプリケーションの再ロード (クラスや web.xml ファイルの変更の反映) はサポートされません。 再ロードはアーカイブされていないディレクトリから Webアプリケーションがインストールされた場合のみ有効なので、 WARファイルを使う場合、アプリケーションに変更を反映させるには、 配備解除 した上で再度 配備 しなければなりません。

配備解除

警告 - このコマンドによって、 この仮想ホストの appBase ディレクトリ (通常は"webapps") 内に存在する Webアプリケーションディレクトリの中身や".war"ファイル、 あるいはその両方が削除されます。 Webアプリケーションの一時的なワークディレクトリも削除されます。 アプリケーションのサービスを休止したいだけなら、 代わりに /stop コマンドを使うべきです。

既存のアプリケーションを緩やかに (gracefully) シャットダウンし、 Tomcat から削除するよう指示します (またこれによって、このコンテキストパスは後で再利用可能となります)。 これは /deploy Ant コマンドやそれに関連する HTMLマネージャの配備機能と論理的に反対のコマンドです。

このコマンドが成功すると、以下のようなメッセージが表示されます。

OK - 成功 - コンテキストパス /examples のアプリケーションを配備解除しました

そうでなければ、メッセージは 失敗 で始まり、 エラーメッセージが表示されます。問題の原因としては以下のものが考えられます。

  • 例外が発生しました

    Webアプリケーションの起動時に例外が発生しました。 詳細については Tomcat 5 のログをチェックして下さい。

  • 無効なコンテキストパスが指定されました

    コンテキストパスはスラッシュ ("/") で始まらなければなりません。 ROOT Webアプリケーションを参照している場合は例外です -- この場合は、コンテキストパスは長さ0の文字列になります。

  • パス /foo のコンテキストが存在しません

    指定したコンテキストのアプリケーションは配備されていません。

  • コンテキストパスが指定されていません
    path パラメータが必要です。

配備

Webアプリケーションは Tomcatサーバ上のファイルやディレクトリを使って配備できますが、 Webアプリケーションアーカイブ (WAR) ファイルをサーバにアップロードすることもできます。

アプリケーションをインストールするには、 行ないたいインストールの種類に応じて適切なフィールドに入力し、 配備 ボタンをクリックします。

サーバ上のディレクトリや WAR ファイルの配備

指定したコンテキストパス (省略可): (必ずしもすべての Webアプリケーションで使われるわけではありません) に付随する、 新しい Webアプリケーションを配備・起動します。 配備解除 コマンドと論理的に反対のコマンドです。

配備コマンドの使い方は何通りもあります。

URL 指定でのディレクトリまたは WARファイルの配備

Tomcatサーバ上の Webアプリケーションのディレクトリや ".war"ファイルをインストールします。 コンテキストパス が指定されていない場合は、 ディレクトリ名、またはWARファイル名から拡張子".war"を省いた名前がパスとして使われます。 WAR またはディレクトリのURL では、ディレクトリ、 Webアプリケーションアーカイブ (WAR) ファイルのいずれかの URL (file:URI スキームを含む) を指定します。 WARファイルを参照する URL でサポートされている構文は java.net.JarURLConnection クラスの Javadoc に記述されています。 WARファイルの完全名を参照する URL しか使えません。

以下の例では (Windows 上で実行される) Tomcat サーバの C:\path\to\foo というディレクトリにある Webアプリケーションが /footoo というコンテキストの Webアプリケーションとして配備されます。

コンテキストパス (省略可): /footoo
WARファイル又はディレクトリのURL: file:C:/path/to/foo

以下の例では (Unix 上で実行される) Tomcat サーバの /path/to/bar.war という WARファイルが、/barというコンテキストの Webアプリケーションとして配備されます。コンテキストパス パラメータが指定されていないため、コンテキストパスはデフォルトである、 Webアプリケーションアーカイブファイル名から拡張子".war"を省いた名前になることに注意して下さい。

WARファイル又はディレクトリのURL: jar:file:/path/to/bar.war!/

ホストの appBase 指定でのディレクトリや WAR ファイルの配備

ホストの appBaseディレクトリ配下の Webアプリケーションのディレクトリまたは ".war"ファイルをインストールします。 コンテキストパス が指定されていない場合は、 ディレクトリ名、またはWARファイル名から拡張子".war"を省いた名前がパスとして使われます。

以下の例では Tomcatサーバのホストの appBaseディレクトリの下の foo ディレクトリにある Webアプリケーションが /foo という Webアプリケーションコンテキストで配備されます。 コンテキストパス パラメータが指定されていないので、 コンテキストパスはデフォルトの Webアプリケーションのディレクトリ名となっていることに注意して下さい。

WARファイル又はディレクトリのURL: foo

以下の例では Tomcatサーバのホストの appBaseディレクトリにある bar.war という".war"ファイルが /bartoo という Webアプリケーションコンテキストで配備されます。

コンテキストパス (省略可): /bartoo
WARファイル又はディレクトリのURL: bar.war

コンテキスト設定".xml"ファイルを使った配備

ホストの deployXML フラグが true の場合、コンテキスト設定 ".xml"ファイルと、オプションで ".war"ファイルまたは Webアプリケーションディレクトリを使って Webアプリケーションをインストールできます。 コンテキスト設定".xml"ファイルを使って Webアプリケーションをインストールする際には コンテキストパス は使われません。

コンテキスト設定".xml"ファイルには、Tomcat の server.xml で設定するのと同じように 妥当な XML を記述できます。Windows 上で実行される Tomcat の例を示します。

<Context path="/foobar" docBase="C:\path\to\application\foobar"
         debug="0">

  <!-- Link to the user database we will get roles from -->
  <ResourceLink name="users" global="UserDatabase"
                type="org.apache.catalina.UserDatabase"/>

</Context>

WARファイル又はディレクトリのURL: はオプションです。 Webアプリケーションの ".war"ファイルまたはディレクトリを選択するのに使うと、 コンテキスト設定".xml"ファイルで設定された docBase はすべて上書きされます。

Windows 上で実行される Tomcat 用のコンテキスト設定".xml" ファイルを使ってアプリケーションをインストールする例を示します。

XML設定ファイルのURL: file:C:/path/to/context.xml

(Unix 上で実行される Tomcat) サーバ上のコンテキスト設定 ".xml"ファイルと Webアプリケーション ".war"ファイルをインストールする例を示します。

XML設定ファイルのURL: file:/path/to/context.xml
WARファイル又はディレクトリのURL: jar:file:/path/to/bar.war!/

WARファイルをアップロードしてインストール

ローカルシステムから WARファイルをアップロードして、ホストの appBase にインストールします。コンテキストパス名には、 WARファイル名から拡張子".war"を省いた名前が使われます。

ローカルのデスクトップシステムからサーバにアップロードする WARファイルを選択するには、参照... ボタンを使います。

.WAR ファイルでは /META-INF/context.xml というコンテキスト設定 XMLファイルを含めることで、Tomcat 固有の配備設定を含めることができます。

WARファイルのアップロードが失敗する理由としては以下のものが考えられます。

  • アップロードするファイルはWARファイルでなければいけません

    アップロードによるインストールの場合、拡張子が ".war" のファイルしか受け取れません。

  • WARファイルは既にサーバ上に存在します

    ホストの appBase に同じ名前の WAR ファイルが存在している場合、 アップロードは失敗します。既存の WARファイルをホストの appBase から配備解除するか、別の名前で WAR ファイルをアップロードして下さい。

  • ファイルのアップロードが失敗しました、ファイルが存在しません

    ファイルアップロードが失敗し、サーバがファイルを受け取っていません。

  • 配備のアップロードが失敗しました、例外:

    WARファイルのアップロードまたはインストールが失敗し、 Javaの例外が発生しています。例外のメッセージが表示されます。

配備での注意事項

unpackWARs=true という設定のホストで WARファイルをインストールすると、 WARファイルはホストの appBase ディレクトリに展開されます。

アプリケーションの WARファイルやディレクトリがホストの appBase ディレクトリに配備され、ホストで autoDeploy=true、liveDeploy=true のいずれかに設定されている場合、コンテキストパスはディレクトリ名か、 WARファイル名から拡張子".war"を省いた名前に合致しなければなりません。

セキュリティ上の理由から、信頼されないユーザが Webアプリケーションを管理できる場合は、ホストの deployXML フラグは false になっています。これにより、信頼されないユーザは、設定 XML ファイルを使って Webアプリケーションをインストールできないだけでなく、 ホストの appBase ディレクトリ配下にないアプリケーションディレクトリや ".war" ファイルのインストールができないようになっています。

配備メッセージ

配備・起動が成功すると、以下のようなメッセージが表示されます。

成功 - コンテキストパス /foo にアプリケーションをインストールしました

そうでなければ、メッセージは 失敗 で始まり、 エラーメッセージが表示されます。問題の原因としては以下のものが考えられます。

  • アプリケーションは、既にパス /foo に存在します

    現在動作している Webアプリケーションのコンテキストパスはすべて一意でなければなりません。 したがって、このコンテキストパスを使っている既存の Webアプリケーションを配備解除するか、 別のコンテキストパスにしなければなりません。

  • ドキュメントベースが存在しない、又は読めないディレクトリです

    WARファイル又はディレクトリのURL: フィールドで指定する URL は Webアプリケーションの「展開済み」バージョンを含んだこのサーバのディレクトリか、 このアプリケーションを含む Webアプリケーションアーカイブ (WAR) ファイルの絶対 URL でなければなりません。WARファイル又はディレクトリのURL: フィールドに正しい値を入れてください。

  • 例外が発生しました

    Webアプリケーション起動時に例外が発生しました。詳細については Tomcat 5 のログをチェックする必要がありますが、/WEB-INF/web.xml 解析エラーや、 アプリケーションイベントリスナやフィルタの初期化時にクラスが見つからなかった 可能性もあります。

  • 無効なアプリケーションのURLが指定されました

    WARファイル又はディレクトリのURL: フィールドに指定した値が妥当でありません。 この URL は file: で始まらなければならず、 WARファイルの URL の場合、".war" で終わらなければなりません。

  • 無効なコンテキストパスが指定されました

    コンテキストパスはスラッシュ ("/") で始まらなければなりません。 ROOT Webアプリケーションを参照している場合は例外です -- この場合は、コンテキストパスは長さ0の文字列になります。

  • コンテキストパスはディレクトリ又はWARファイル名に一致しなければいけません:
    ホストの appBase ディレクトリにアプリケーションの WARファイルやディレクトリが配備され、ホストで autoDeploy=true、 liveDeploy=true のどちらかの設定があった場合、 コンテキストパスはディレクトリ名か、 WARファイル名から拡張子".war"を省いた名前に合致しなければなりません。
  • ホストWebアプリケーションディレクトリ中のWebアプリケーションだけがインストールできます
    ホストの deployXML フラグが false になっていて、ホストの appBase ディレクトリ以外に Webアプリケーションディレクトリや ".war" ファイルをインストールしようとするとこのエラーが発生します。
サーバ情報

このセクションには Tomcat や、Tomcat がインストールされたサーバの OS、 それに Tomcat が実行されている Java仮想マシンに関する情報が表示されます。


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