3. WEBアプリケーションのインストールと構成

日本語訳というか意訳:ひろも
オリジナル : {TOMCAT_HOME}\doc\appdev\deployment.html(in Tomcat3.1)

3.1 バックグラウンド

自作ソースコードディレクトリのインストールについて説明する前に、WEBアプリケーションの実行環境について振り返ってみましょう。
Servlet API version 2.2 の仕様が制定される前は、異なるサーバープラットフォーム間での一貫性はほとんどありませんでした。
しかし、Servlet API 2.2の仕様が制定された今、それに適合したサーバーは、以下で説明する標準フォーマット「WEBアプリケーションアーカイブ(Web Application Archive)」に対応していなければいけません。

WEBアプリケーションは、標準的な階層ディレクトリ、ファイルの形で定義されます。
この階層構造は、以下の2つの形になります。

packed」型は、特に開発後期に、WEBアプリケーションの配布・インストールに使います。

WEBアプリケーションの階層構造のトップもまた、WEBアプリケーションの「ドキュメントルート」です。
例えば、WEBアプリケーションのユーザーインターフェースになるHTMLファイルとJSPページを設置するとします。
システム管理者は、「コンテキストパス(context path)」と呼ばれるものを、そのWEBアプリケーション用に割り当てます。
例えば、あるWEBアプリケーションのコンテキストパスとして「/catalog」を割り当てた場合、「/catalog/index.html」へのURI参照により、ドキュメントルートにある index.html が返されるわけです。

3.2 基本的なディレクトリレイアウト


規定にしたがったWEBアプリケーションアーカイブファイルを簡単に作成するには、WAR フォーマットで決められてるのと同じ構成で、WEBアプリケーションを「実行可能な」形(Tomcatが実行時、実際に使うファイル)に整えてやるのが近道です。
具体的には、WEBアプリケーションのドキュメントルート以下が、以下のようになっていなければいけません。

Tomcat(または、Servlet API 2.2 互換サーバー)にWEBアプリケーションをインストールする場合、WEB-INF/classes/ ディレクトリ、WEB-INF/lib/ ディレクトリ内のJARファイルがあなたのWEBアプリケーション固有のクラスパスとして追加されます。このように、必要なすべてのクラスライブラリをこれらのうちのひとつの場所に取り込んだとすると(サードパーティー製ライブラリは再配布のライセンスの確認が必要ですが)WEBアプリケーションのインストールを簡略化できます。---つまり、システムのクラスパスの設定は必要なくなるわけです。

ここの情報の多くががサーブレットAPI仕様書 version2.2の第9章からの抜粋ですので、さらなる詳細についてはそちらを読むべきです。

3.3 WEBアプリケーション設置の記述(Web Application Deployment Descriptor)

先にも書いたように、WEB-INF/web.xml ファイルはWEBアプリケーション設置の記述を含んでいます。拡張子からも分かるように、このファイルはXML文書で、WEBアプリケーションについてサーバーが知らなければいけない内容を定義します。(ただし、WEBアプリケーションの設置のためにシステム管理者が割り当てる「コンテキストパス(context path)」は除く)

WEBアプリケーションの設置の記述についての完全な文法と意味については、サーブレットAPI仕様書 version2.2の第13章で定義されています。将来的には、WEBアプリケーション設置の記述(Web Application Deployment Descriptor)を作成・編集するツールが提供される可能性がありますが、それまでの間は、スタートポイントとして、基本の web.xml ファイルが提供しています。このファイルでは、各XML要素の使用目的について説明しています。

3.4 Tomcatへの統合

WEBアプリケーションを実行するには、サーブレットコンテナに統合、またはインストールしなければいけません。これは、たとえ開発中であってもそうです。ここでは、WEBアプリケーションの実行環境を実現するのにTomcatを使用する方法を説明します。Tomcatでは、以下の異なる3つのアプローチで、WEBアプリケーションを設置できます。

<Context>エントリーを Tomcat の server.xml には、次の手順が必要です。(Tomcat3.1の場合)

WEBアプリケーションを、Tomcat以外のサーブレットコンテナに統合、インストールする場合は、それぞれのコンテナの指示に従ってください。ただし、サーブレットAPI仕様書(version2.2)と互換のあるコンテナであれば、上記で説明したWEBアプリケーションアーカイブファイルは使えるようになっていなければいけないはずです。