連載
» 2003年09月27日 00時00分 公開

Eclipse徹底活用(5):Entity Beanを簡単に作る (3/3)

[金子崇之, 岡本隆史,NTTデータ]
前のページへ 1|2|3       

(4)Session Beanの修正

 前回の記事で作成したStateless Session Beanを、Entity Beanを操作してデータベースから名前を取得するように修正します。そのために、XDocletタグの修正、実装の変更、EJBの再生成を行います。

XDocletタグの修正

 MLAdminからMLMemberを呼び出すことができるように、MLAdmin.javaのクラスレベルのXDocletタグとして@ejb.ejb-refを追加します。

/**
* @ejb.bean name="MLAdmin"
* jndi-name="MLAdminBean"
* type="Stateless" 
 
* @ejb.ejb-ref
* ejb-name="MLMember" 
**/

 このタグにより、EJBクラス生成時に、ejb-jar.xmlのMLAdminに関する記述内に、ejb-refが記述されます。すると、MLAdminから“java:comp/env/ejb/MLMember”というCOMP_NAMEでMLMemberを参照できるようになります。

実装の変更

 getNameメソッドの中身を、以下のように書き換えます。

/**
* @ejb.interface-method
* tview-type="remote" 
**/
public String getName(String email) {
  try {
     MLMemberHome home = MLMemberUtil.getHome();
    return home.findByPrimaryKey(email).getName();
  } catch (FinderException e) {
    e.printStackTrace();
    return "NO SUCH AN EMAIL ADDRESS!";
  } catch (NamingException e) {
    e.printStackTrace();
    throw new EJBException(e);
  } catch (RemoteException e) {
    e.printStackTrace();
    throw new EJBException(e);
  }
}

 今回は、Lombozが生成するMLMemberUtilを使用して簡単にホームインターフェイスを取得しています。

 メールアドレスがデータベースに存在しない場合、エラー文字列"NO SUCH AN EMAIL ADDRESS!"を返します。それ以外の例外の場合には、EJBExceptionをthrowするようにしています。

EJBの再生成

 XDocletのタグを修正したので、EJBを再生成します。「mlEJB」フォルダーを右クリック→「Lomboz J2EE...」→「Generate EJB Classes」を選択します。ejb-jar.xml内のMLAdminの記述内に、MLMember用のejb-ref要素が追加されていることを確認してください。

(5)デプロイと動作確認

 追加したEntity Beanと、修正したStateless Session BeanをJBossにデプロイし、動作確認を行ってみましょう。

EJBのデプロイ

 前回の記事と同様に、EJBをデプロイします。「mlEJB」フォルダーを右クリック→「Lomboz J2EE...」→「Deploy Module」を選択します。

 mlEJB.jarの中に、MLAdminとMLMemberの両方のEJBが含まれます。JBossはホットデプロイに対応しているため、JBoss起動中にデプロイした場合、JBossのコンソールには以下のように表示されます。

05:00:54,415 INFO [MainDeployer] Starting deployment of package: file:/C:/jboss-3.0.8/server/default/deploy/mlEJB.jar
05:00:56,228 INFO [EjbModule] Creating
05:00:56,298 INFO [EjbModule] Deploying MLMember
05:00:56,338 INFO [EjbModule] Deploying MLAdmin
05:00:56,518 INFO [EjbModule] Created
05:00:56,518 INFO [EjbModule] Starting
05:00:58,120 INFO [MLMember] Table 'mlmember' already exists
05:00:58,191 INFO [EjbModule] Started
05:00:58,191 INFO [MainDeployer] Deployed package: file:/C:/jboss-3.0.8/server/default/deploy/mlEJB.jar

 MLMemberとMLAdminの両方のEJBがデプロイされていることが分かります。

EJBの動作確認

 JBossが起動していない場合には、「mlEJB」フォルダーを右クリック→「Lomboz J2EE...」→「Debug Server」を選択すると、Eclipse上でJBossを動作させることができます。コンソールビュー上に標準出力が表示され、動作状況を確認することができます。

 続いて、クライアントからアクセスし、動作確認してみましょう。前回の記事で作成したMLAdminClient.javaを選択し、「実行」→「次を実行する」→「Java アプリケーション」を選択すると、クライアントのコンソールビュー上に標準出力として実行結果が表示されます。

山田太郎

 メールアドレス「taro@nttdata.co.jp」を基に、データベース上のデータ「山田太郎」を取得することができました。

おわりに

 Entity Beanの開発では、Stateless Session Beanと比べると、データベース上のテーブルとのマッピングやPKクラスの作成などやらなければならない作業が増えてきます。Lombozのウィザードを使えば、これらの作業を大幅に削減することができます。また、EJBの作成に必要なファイルだけでなく、JNDI経由でホームインターフェイスを簡単に取得することができるユーティリティクラスやValue Objectの作成なども簡単に行うことができます。

 今回の記事では紹介しませんでしたが、Lomboz 2.1.1からはEJB、WARに加え、EARもサポートするようになりました。無料でここまでできるプラグイン、導入しない手はありません。

 次回は、開発したアプリケーションをチューニングするために、Eclipseをプロファイラへと変身させるプラグインについて紹介します。

筆者プロフィール

金子 崇之(かねこ たかゆき)

現在、株式会社NTTデータ ビジネス開発事業本部に所属。技術支援グループとして、J2EEをベースにしたWebシステム開発プロジェクトを対象に、技術サポートを行っている。特に、性能・信頼性といった方式技術を中心に活動中。


筆者プロフィール

岡本 隆史(おかもと たかし)

NTTデータ 技術開発本部 所属。Debian GNU/Linuxの優れたメンテナンス性と他のディストリビューションを圧倒するパッケージ数に引かれDebianを使い始めたのをきっかけに、Debian プロジェクトの開発者となりJavaサポートの強化を行う。『Jakartaプロジェクト徹底攻略』(技術評論社)、『WEB+DB PRESS』(技術評論社)、『Java World』(IDGジャパン)、『JAVA Developer』(ソフトバンクパブリッシング)などで執筆活動を行っている。



前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。