目指せ! Webアプリケーションエンジニア

第9回アプリケーションを完成させる

前回は、EJBの具体的作成方法について学びました。これで、JSP、サーブレットとEJBがそろいました。今回は、アプリケーションを完成させるために行わなければならないデプロイメント記述子の設定について解説します。

業務アプリケーションを動かすためには

これまで作ってきたJSP、サーブレット、EJBは総称して「コンポーネント」と呼ぶ⁠部品⁠であり、この部品だけではまだアプリケーションとは呼べません。これらのコンポーネントを配布するための情報やWebアプリケーションサーバ上で動かすための設定情報を合わせて定義する必要があるからです。この設定情報のことを「デプロイメント記述子」または「DD」⁠デプロイメントディスクリプタ)と呼びます。そして、この情報を付加することにより、完成したアプリケーションとして開発環境から実行環境に移動できるようになります。この移動のことをWebアプリケーションサーバ環境では「デプロイ」または「配備」と呼びます。

このように、アプリケーションを完成させるためには表1で示すデプロイメント記述子を定義する必要があります。

表1 デプロイメント記述子(DD)
名称概要
application.xmlアプリケーション全体の定義情報やアプリケーションを配備するための定義情報
ejb-jar.xmlEJBを配備するための定義情報
web.xmlサーブレットやJSPを配備するための定義情報

これらのデプロイメント記述子の定義が完了した後、⁠ビルド」「デプロイ」を行うことで、初めてアプリケーションが動作可能な状態になるのです。

デプロイメント記述子と完成したアプリケーションとの関係は図1のようになります。JSP、サーブレットから作成されるWARファイルにはweb.xmlが、EJBから作成されるEJB-JARファイルにはejb-jar.xmlが、これらがまとまったEARファイル(アプリケーション)にはapplication.xmlが含まれます。

図1 ビルドとデプロイの流れ
図1 ビルドとデプロイの流れ

それでは、デプロイメント記述子を定義する手順について説明していきます。なお、application.xmlとweb.xmlは、プロジェクトを作成した時点でMyEclipseによってひな型が自動生成されます。そのため、定義はこのひな型を確認して、必要な変更を加えることで完成します。

application.xmlの定義

application.xmlは「MyEclipse XMLエディター」を用いて確認と編集を行います。

MyEclipseでは、エンタープライズアプリケーションプロジェクト作成時に、そこに含めるWebプロジェクト、EJBプロジェクトを指定すると、プロジェクトに含まれるモジュールを指定する<module>タグが自動で挿入されます。MyEclipse XMLエディターで確認し、問題がなければそのまま使用します。

MyEclipse XMLエディターでapplication.xmlを開くには、左ペインの「application.xml」を右クリックし、メニューから[アプリケーションから開く(H)][MyEclipse XMLエディター]を選択します図2⁠。

図2 MyEclipse XMLエディターの起動
図2 MyEclipse XMLエディターの起動

web.xmlの定義

web.xmlは「MyEclipse Web XMLエディター」を用いて確認と編集を行います。MyEclipseでは、サーブレットクラス名やURLマッピングは、サーブレットファイル作成時に「web.xmlファイルの生成/マップ」チェックボックスをオンにしておくと、自動で挿入されます。web.xmlではこのほか、HTTPエラーやJava例外が発生した場合にエラーメッセージを表示したり、Webブラウザとの送受信データに、圧縮やデータ変換などさまざまな処理を行うフィルタを設定したりできます。

ここでは例として、Java例外のServletExceptionが発生した場合にエラーページを呼び出す設定について説明します。

まず、web.xmlをMyEclipse Web XMLエディターで開きます。左ペインの「web.xml」を右クリックし、メニューから[アプリケーションから開く(H)][MyEclipse Web XMLエディター]を選択します図3⁠。

図3 MyEclipse Web XMLエディターの起動
図3 MyEclipse Web XMLエディターの起動

エディタエリアに「MyEclipse Web XMLエディター」が表示されますので、左ペインで「Error Pages」をクリックします図4⁠。

図4 MyEclipse Web XMLエディター上の「Error Pages」
図4 MyEclipse Web XMLエディター上の「Error Pages」

「エラー・ページの追加」ダイアログが表示されますので、⁠Exception-Type:」[参照(B)]ボタンをクリックします図5⁠。

図5 ⁠エラー・ページの追加」ダイアログ
図5 「エラー・ページの追加」ダイアログ

「Edit Exception-Type」ダイアログが表示されますので、型を絞り込むため「servlet」と入力し、⁠一致する型」の中から「ServletException - javax.servlet」を選択します図6⁠。

図6 ⁠Edit Exception-Type」ダイアログ
図6 「Edit Exception-Type」ダイアログ

最後に、同様にして「Location:*」[参照(B)]ボタンをクリックし、表示されるダイアログから、エラー画面を表示するJSPファイルを選択します。これでServletExceptionが発生したときに、設定したエラーページが表示されるようになります。

ejb-jar.xmlの定義

最後にejb-jar.xmlの作成ですが、EJB 3.0からはEJBの種類(ステートフルかステートレスか)とリモートインタフェースを、アノテーション(@Stateful/@Stateless、@Remote)を使用して記述しておけば、ejb-jar.xmlを作成する必要はありません。

なお、アノテーションを使用していない場合には「MyEclipse XMLエディター」を用いて作成することになります。

ココがポイント

今回のポイントとなるのは、以下の用語です。これらの説明ができるようにしておきましょう。

  • デプロイメント記述子
  • application.xml
  • web.xml
  • MyEclipse XMLエディター
  • MyEclipse Web XMLエディター
Cosminexusでホッと一息 ~Cafe Cosminexus
URL:http://www.cosminexus.com

おすすめ記事

記事・ニュース一覧