前回は、EJBの具体的作成方法について学びました。これで、JSP、サーブレットとEJBがそろいました。今回は、アプリケーションを完成させるために行わなければならないデプロイメント記述子の設定について解説します。
業務アプリケーションを動かすためには
これまで作ってきたJSP、サーブレット、EJBは総称して「コンポーネント」と呼ぶ“ 部品” であり、この部品だけではまだアプリケーションとは呼べません。これらのコンポーネントを配布するための情報やWebアプリケーションサーバ上で動かすための設定情報を合わせて定義する必要があるからです。この設定情報のことを「デプロイメント記述子」または「DD」( デプロイメントディスクリプタ)と呼びます。そして、この情報を付加することにより、完成したアプリケーションとして開発環境から実行環境に移動できるようになります。この移動のことをWebアプリケーションサーバ環境では「デプロイ」または「配備」と呼びます。
このように、アプリケーションを完成させるためには表1 で示すデプロイメント記述子を定義する必要があります。
表1 デプロイメント記述子(DD)
名称 概要
application.xml アプリケーション全体の定義情報やアプリケーションを配備するための定義情報
ejb-jar.xml EJBを配備するための定義情報
web.xml サーブレットやJSPを配備するための定義情報
これらのデプロイメント記述子の定義が完了した後、「 ビルド」と「デプロイ」を行うことで、初めてアプリケーションが動作可能な状態になるのです。
デプロイメント記述子と完成したアプリケーションとの関係は図1のようになります。JSP、サーブレットから作成されるWARファイルにはweb.xmlが、EJBから作成されるEJB-JARファイルにはejb-jar.xmlが、これらがまとまったEARファイル(アプリケーション)にはapplication.xmlが含まれます。
図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エディターの起動
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エディターの起動
エディタエリアに「MyEclipse Web XMLエディター」が表示されますので、左ペインで「Error Pages」をクリックします(図4 ) 。
図4 MyEclipse Web XMLエディター上の「Error Pages」
「エラー・ページの追加」ダイアログが表示されますので、「 Exception-Type:」の[参照(B)]ボタンをクリックします(図5 ) 。
図5 「 エラー・ページの追加」ダイアログ
「Edit Exception-Type」ダイアログが表示されますので、型を絞り込むため「servlet」と入力し、「 一致する型」の中から「ServletException - javax.servlet」を選択します(図6 ) 。
図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 認定エンジニア合格教本』
株式会社日立製作所 監修、定価3,024円(本体2,880円) 、技術評論社
978-4-7741-4188-6
Webアプリケーションサーバの動作原理や、アプリケーションの開発方法をCosminexusを例に詳しく解説。丁寧な解説、すぐ使えるシミュレータによる操作の体感、そして充実した模擬試験。入門資格の取得の近道です。
Cosminexusでホッと一息 ~Cafe Cosminexus
URL:http://www.cosminexus.com