さて、WEB-INFディレクトリの直下には、設定ファイルweb.xmlを配置する決まりになっています。同ファイルはDD(Deployment Descriptor)ファイルとも呼ばれ、主に以下の設定情報をWebコンテナに伝える役割を担います。
以下の例では、サーブレットTestServletにURLを割り当てています。
<?xml version="1.0"?>
<web-app>
<servlet>
<servlet-name>TestServlet</servlet-name>
<servlet-class>sample.TestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TestServlet</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
</web-app>
ここでは、サーブレット・クラスsample.TestServletに対して、/testというURLを割り当てています。よってWebブラウザからは、以下のURLでアクセス可能になります。
http://<ホスト名>/<Webアプリケーションのパス>/test
また、以下のように記述することで、特定のHTTPステータスコードや例外が発生した場合に表示するエラー・ページを指定できます。
<error-page>
<error-code>404</error-code>
<location>/error.jsp</location>
</error-page>
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/error.jsp</location>
</error-page>
そのほか、web.xmlを利用した初期化パラメータ指定やセキュリティ設定については、サーブレット仕様に詳しく記載されています。
Java EEのWebアプリケーションは、以上のようなディレクトリ構成でまとめておくことで、TomcatをはじめさまざまなJava EEサーバ製品に簡単に配置して動作させることができます。
さらに、Webアプリケーションのディレクトリ全体をJARファイルに圧縮し、拡張子を「.war」とすることで、「WAR(Web ARchive)ファイル」と呼ばれるファイル形式にまとめられます。
例えば、Webアプリケーションの成果物すべてを「foo.war」という1つのWARファイルに収めておけば、同ファイルをTomcatのwebappsディレクトリにコピーするだけで、Tomcatがそれを自動展開してWebアプリケーション「foo」の動作を開始します。
Java EEでは、このようなWARファイルの作成とWebコンテナへの配置を、それぞれ「パッケージング」と「デプロイ」と呼びます。このパッケージング&デプロイの仕組みによって、Webアプリケーションのポータビリティが高まり、特定のWebコンテナへの依存度を抑えることが可能です。
ちなみに実際の開発では、ソースコードのコンパイルからWARファイルのパッケージング、そしてWebコンテナへのデプロイまでの一連の作業を、「Ant」などのビルドツールで自動化する方法が一般的です。
以上、今回はJava EEにおけるWebアプリケーションのパッケージング方法を紹介しました。本連載はこれにて終了となりますが、これまでご愛読いただきありがとうございました。
Copyright © ITmedia, Inc. All Rights Reserved.