(Web アプリケーションで使われていていない) path
でコンテキストを指定して、新しい Web アプリケーションをインストール・起動します。
このコマンドは /remove コマンドの反対です。
インストールコマンドの使い方は何通りもあります。
以前に配備したバージョンの Webアプリのインストール
tag 属性を使って配備された以前のバージョンの
Webアプリケーションを配備するのに使えます。
manager Webアプリの作業ディレクトリには、
以前に配備した WARファイルが入っていますが、
それを削除した場合には配備が失敗することにご注意ください。
 |  |  |
 |
http://localhost:8080/manager/deploy?path=/footoo&tag=footag
|  |
 |  |  |
URLで指定したディレクトリまたは WARファイルのインストール
Tomcat サーバ上にある Webアプリケーションディレクトリまたは ".war"
ファイルをインストールします。path が指定されていない場合は、
ディレクトリ名、または WARファイル名から拡張子「.war」をとったものがパスとして使われます。
ディレクトリ名や Webアプリケーションアーカイブ (WAR) ファイルについては、
war パラメータで指定します。WARファイル参照 URL
でサポートされている構文については、java.net.JarURLConnection
クラスの Javadoc ページに記載されています。
WARファイル全体を参照する URL しか使えません。
以下の例では Tomcat サーバの /path/to/foo
ディレクトリにある Webアプリケーションを /footoo
というコンテキストとしてインストールします。
 |  |  |
 |
http://localhost:8080/manager/deploy?path=/footoo&war=file:/path/to/foo
|  |
 |  |  |
以下の例では Tomcat サーバの /path/to/bar.war
にある「.war」ファイルを、/bar というコンテキストの
Web アプリケーションとしてインストールします。path パラメータがないので、
コンテキストパスはデフォルト値である、Webアプリケーションアーカイブファイル名から拡張子
「.war」を取ったものとなることにご注意ください。
 |  |  |
 |
http://localhost:8080/manager/deploy?war=jar:file:/path/to/bar.war!/
|  |
 |  |  |
ホストの appBase 指定でのディレクトリや WAR ファイルのインストール
ホストの appBaseディレクトリ配下の Webアプリケーションのディレクトリまたは
".war"ファイルをインストールします。path が指定されていない場合は、
ディレクトリ名、またはWARファイル名から拡張子".war"を省いた名前がパスとして使われます。
以下の例では Tomcatサーバのホストの appBaseディレクトリの下の
foo ディレクトリにある Webアプリケーションが
/foo という Webアプリケーションコンテキストでインストールされます。
path パラメータが指定されていないので、
コンテキストパスはデフォルトの
Webアプリケーションのディレクトリ名となっていることに注意して下さい。
 |  |  |
 |
http://localhost:8080/manager/deploy?war=foo
|  |
 |  |  |
以下の例では Tomcatサーバのホストの appBaseディレクトリにある
bar.war という".war"ファイルが /bartoo
という Webアプリケーションコンテキストでインストールされます。
 |  |  |
 |
http://localhost:8080/manager/deploy?path=/bartoo&war=bar.war
|  |
 |  |  |
コンテキスト設定".xml"ファイルを使ったインストール
ホストの deployXML フラグが true の場合、コンテキスト設定
".xml"ファイルと、オプションで ".war"ファイルまたは
Webアプリケーションディレクトリを使って
Webアプリケーションをインストールできます。
コンテキスト設定".xml"ファイルを使って
Webアプリケーションをインストールする際には コンテキストの path
は使われません。
コンテキスト設定".xml"ファイルには、Tomcat の
server.xml で設定するのと同じように
妥当な XML を記述できます。以下に例を示します。
 |  |  |
 |
<Context path="/foobar" docBase="/path/to/application/foobar"
debug="0">
<!-- ロールを取得するユーザデータベースへのリンク -->
<ResourceLink name="users" global="UserDatabase"
type="org.apache.catalina.UserDatabase"/>
</Context>
|  |
 |  |  |
オプションですが、 URL に war パラメータで
Webアプリケーションの".war"ファイルまたはディレクトリが指定された場合は、
コンテキスト設定".xml"ファイルで設定された docBase はすべて上書きされます。
コンテキスト設定".xml"
ファイルを使ってアプリケーションをインストールする例を示します。
 |  |  |
 |
http://localhost:8080/manager/deploy?config=file:/path/context.xml
|  |
 |  |  |
サーバ上のコンテキスト設定".xml"ファイルと Webアプリケーション
".war"ファイルをインストールする例を示します。
 |  |  |
 |
http://localhost:8080/manager/deploy?config=file:/path/context.xml&war=jar:file:/path/bar.war!/
|  |
 |  |  |
インストールでの注意事項
unpackWARs=true という設定のホストで WARファイルをインストールすると、
WARファイルはホストの appBase ディレクトリに展開されます。
アプリケーションの WARファイルやディレクトリがホストの appBase
ディレクトリに配備され、ホストで autoDeploy=true、liveDeploy=true
のいずれかに設定されている場合、コンテキストパスはディレクトリ名か、
WARファイル名から拡張子".war"を省いた名前に合致しなければなりません。
セキュリティ上の理由から、信頼されないユーザが
Webアプリケーションを管理できる場合は、ホストの deployXML フラグは
false になっています。これにより、信頼されないユーザは、設定 XML
ファイルを使って Webアプリケーションをインストールできないだけでなく、
ホストの appBase ディレクトリ配下にないアプリケーションディレクトリや ".war"
ファイルのインストールができないようになっています。
インストールに対するレスポンス
インストールと起動が成功すると、以下のようなレスポンスが返ってきます。
 |  |  |
 |
成功 - コンテキストパス /foo にアプリケーションをインストールしました
|  |
 |  |  |
そうでなければ、レスポンスは 失敗 で始まるエラーメッセージとなります。
問題の原因としては以下のものが考えられます。
- アプリケーションは、既にパス /foo に存在します
現在動作している Webアプリケーションのコンテキストパスはすべて一意でなければなりません。
したがって、このコンテキストパスを使っている既存の Webアプリケーションを配備解除するか、
別のコンテキストパスにしなければなりません。URL で update
パラメータに true を指定すれば、このエラーを回避できます。
その場合、配備の前に既存のアプリケーションの配備解除が行なわれます。
- ドキュメントベースが存在しない、又は読めないディレクトリです
war パラメータでで指定する URL は
Webアプリケーションの「展開済み」バージョンを含んだこのサーバのディレクトリか、
このアプリケーションを含む Webアプリケーションアーカイブ (WAR)
ファイルの絶対 URL でなければなりません。war
パラメータでに正しい値を指定してください。
- 例外が発生しました
Webアプリケーション起動時に例外が発生しました。詳細については Tomcat 5
のログをチェックする必要がありますが、/WEB-INF/web.xml 解析エラーや、
アプリケーションイベントリスナやフィルタの初期化時にクラスが見つからなかった可能性もあります。
- 無効なアプリケーションのURLが指定されました
指定したディレクトリまたは Webアプリケーションの 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" ファイルをインストールしようとするとこのエラーが発生します。