メッセージ駆動型 Bean の作成

「エンタープライズ Bean の作成」ウィザードを使用して、EJB 2.x メッセージ駆動型 Bean を作成できます。

このタスクについて

メッセージ駆動型 Bean は、Java™ Message Service (JMS) からの非同期メッセージの処理をサポートするために EJB 2.0 において導入されたものです。 EJB 2.1 仕様は、メッセージ駆動型 Bean が JMS だけではなくあらゆるメッセージング・システムをサポートできるように、メッセージ駆動型 Bean の定義を拡張します。 それに応じて、メッセージ駆動型 Bean の定義に使用されるデプロイメント記述子要素は EJB 2.1 仕様で変更されました。EJB 2.1 メッセージ駆動型 Bean 作成のためのウィザードにも、オプションで非 JMS メッセージング・システムとその活動化構成要素を定義するための、追加ページが組み込まれています。

EJB 2.0 および EJB 2.1 仕様におけるメッセージ駆動型 Bean デプロイメント記述子のエントリーの例については、『メッセージ駆動型 Bean デプロイメント記述子の例』を参照してください。

手順

  1. Java EE パースペクティブで、「ファイル」 > 「新規」 > 「その他」をクリックします。 「EJB」 > 「エンタープライズ Bean (1.x-2.x)」と選択して、「次へ」をクリックします。 あるいは、EJB プロジェクトを右クリックして、「新規」 > エンタープライズ Bean (1.x-2.x) をクリックします。
  2. 「メッセージ駆動型 Bean」を選択します。
  3. Bean を追加する「EJB プロジェクト」を選択します。 EJB 2.0 もしくは EJB 2.1 プロジェクトを選択できます。
  4. 「Bean 名」フィールドに、エンタープライズ Bean に割り当てる名前を入力します。 規則により、Bean 名は大文字で始めます。
    注: Bean の名前にユニコード文字を使用できますが、ユニコード文字は、エンタープライズ Bean に関連付けられたエンタープライズ Bean のパッケージ、およびクラスではサポートされていません。
  5. 「ソース・フォルダー」フィールドで、新しい Bean 用のソース・フォルダーを選択します。
  6. 「デフォルト・パッケージ」フィールドに、新しい Bean 用のパッケージ名を入力します。
  7. オプション: 「注釈付き Bean クラスの生成」を選択することもできます。 このオプションを選択すると、ウィザードはその Bean クラスの Java コードの先頭に注釈を生成します。 注釈は、ウィザードで指定したように Bean の実装を定義します。 この注釈は、EJB ツールが、必要な Bean クラスの生成および EJB デプロイメント記述子 (ejb-jar.xml) に挿入される値の提供に使用します。注釈を使い慣れており、デプロイメント記述子よりもむしろ注釈を利用して Bean を更新したい場合は、このオプションを選択してください。 このオプションを選択した場合は、その他のオプションを使用できなくなることがあります。

    詳しくは、注釈ベース・プログラミングの概要を参照してください。

  8. 「次へ」をクリックします。
  9. EJB 2.1 メッセージ駆動型 Bean の場合 (EJB 2.0 Bean を作成している場合は、スキップしてステップ 10 に進んでください)、以下を指定します。
    1. メッセージ駆動型 Bean に使用するメッセージング・サービスを指定します。
      • JMS 型: リスナー・タイプとして javax.jms.MessageListener クラスを使用し、JMS メッセージ・サービスを使用したい場合は、このオプションを選択します。
      • その他の型: 非 JMS もしくはカスタム・メッセージング・サービスを使用したい場合は、このオプションを選択します。 「リスナー・タイプ」フィールドに、リスナー・クラスの完全修飾名を入力します。
      「次へ」をクリックします。
    2. メッセージ駆動型 Bean の詳細を指定します。
      注: 非 JMS メッセージング・システムを使用する EJB 2.1 メッセージ駆動型 Bean を作成する場合、オプションの中には使用不可のものもありますが、活動化構成名と値のペアという形で手操作で定義できます。
      • トランザクション型: コンテナーまたは Bean のいずれかが Bean のトランザクションを管理するように指定できます。
      • 活動化構成: 追加のプロパティーを構成する場合、このテーブルを使用します。 定義したそれぞれの名前と値のペアは、<activation-config-property> 要素としてデプロイメント記述子に追加されます。JMS メッセージングを使用する EJB 2.1 メッセージ駆動型 Bean の場合、事前定義のプロパティーは以下のとおりです。
        acknowledgeMode
        値に、Auto-acknowledge および Dups-ok-acknowledge を組み込みます。
        destinationType
        値に、javax.jms.Queue および javax.jms.Topic を組み込みます。
        messageSelector
        値はユーザー指定です。
        「追加」をクリックして、テーブルに追加プロパティーを定義するか、「削除」をクリックして、テーブルからプロパティーを削除します。
      • 新しい Bean が同じ EJB プロジェクト内の既存 Bean から継承するようにする場合は、Bean スーパータイプを選択します。 「Bean スーパータイプ」ドロップダウン・メニューは、他の CMP Bean が EJB プロジェクトに存在する場合に使用可能です。 Bean スーパータイプを選択すると、キー・クラス・フィールドが使用不可になります。これは、サブタイプが、スーパータイプと同じキー・クラスを持つ必要があるためです。
      • Bean クラス: その Bean クラス用のパッケージおよびクラス名を入力します。 デフォルトでは、ウィザードは、定義した Bean 名とパッケージ名に基づいた Bean クラスを推奨します。 Bean クラスは、ウィザードが生成した新規クラス、またはプロジェクトのクラスパス内の既存のクラスでも構いません。「クラス」ボタンをクリックして、 Bean タイプに対応するプロジェクト内のクラスをリストする「型の選択」ウィンドウを開きます。 既存のクラスは、ソースを付けて Bean クラス名を青色で表示されます。 既存のバイナリー・クラスの Bean クラス名は、赤色で表示されます。
      • Message Destination Link: 「参照」をクリックして、 メッセージ宛先にリンクします。これにより、message-destination-link 要素がデプロイメント記述子内の Bean に追加されます。注釈付き Bean クラスの生成を選択した場合は、メッセージ宛先リンクは使用不可となります。
    3. 「次へ」をクリックします。
    4. オプション: 「Bean スーパークラス」フィールドで、必要なクラスを入力または選択します。 Bean のスーパータイプを選択した場合、このフィールドは使用不可になります。「次へ」をクリックします。
    5. オプション: Bean をクラス図に追加するには、このチェック・ボックスを選択し、プロジェクトのエクスプローラー・ビューからクラス図を選択します。 各 EJB プロジェクトには、既にデフォルトのクラス図が作成されています。新規のクラス図を作成したい場合は、「新規」をクリックして、「新規クラス図」ウィザードを開きます。
    6. 「終了」をクリックします。 新規 Bean が生成され、デプロイメント記述子内に定義されます。
  10. EJB 2.0 メッセージ駆動型 Bean について、以下を指定します。
    1. メッセージ駆動型 Bean の詳細を指定します。 : JMS 型のメッセージングでは、すべて 2.0 メッセージ駆動型 Bean を使用することが前提です。
      • トランザクション型: コンテナーまたは Bean のいずれかが Bean のトランザクションを管理するよう指定できます。
      • 確認モード: Bean 管理トランザクションの場合、セッションで受け取ったメッセージへの確認方法を指定できます。Auto-acknowledge および Dups-ok-acknowledge から選択できます。
      • Message-driven destination: 「キュー」または 「トピック」「宛先タイプ」を選択します。
        • 「キュー」は、ポイント・ツー・ポイント JMS メッセージング・モデルを使用する場合に選択します。
        • 「トピック」は、パブリッシュ・アンド・サブスクライブ JMS メッセージング・モデルを使用する場合に選択します。
      • 耐久性: メッセージ宛先タイプを「トピック」に設定した場合、 トピックのサブスクリプションが耐久か非耐久かを指定できます。
        • 永続的: サブスクライバーは、JMS により保持される固有 ID で永続サブスクリプションを登録します。 同じ ID を持つ後続のサブスクライバー・オブジェクトは、 それ以前のサブスクライバーによって置かれていた状態のままとなっているサブスクリプションを再開します。 永続サブスクリプションのアクティブ・サブスクライバーがない場合、JMS はサブスクリプションのメッセージを、それらがサブスクリプションによって受信されるか、または期限切れになるまで保持します。
        • 非耐久: サブスクリプションはそれぞれ、 そのサブスクライバー・オブジェクトの存続期間にわたって持続します。 つまり、そのサブスクライバーがアクティブである間だけ、クライアントは、 トピックで公開されたメッセージを見ることができます。 サブスクライバーがアクティブでなければ、クライアントは、そのトピックで公開されたメッセージを見ることができません。
      • Bean クラス: その Bean クラス用のパッケージおよびクラス名を入力します。 ウィザードでは、デフォルトで、Bean 名と定義したデフォルト・パッケージに基づいた Bean クラスを勧められます。 Bean クラスは、ウィザードが生成した新規クラス、またはプロジェクトのクラスパス内の既存のクラスでも構いません。「クラス」ボタンをクリックして、Bean タイプに対応するプロジェクト内のクラスをリストする「型の選択」ウィンドウを開きます。 既存のクラスは、ソースを付けて Bean クラス名を青色で表示されます。 既存のバイナリー・クラスの Bean クラス名は、赤色で表示されます。
      • メッセージ・セレクター: JMS メッセージ・セレクターは、メッセージ Bean によって受信されるメッセージの判別に使用されます。
    2. 「次へ」をクリックします。
    3. オプション: 「Bean スーパークラス」フィールドで、必要なクラスを入力または選択します。 Bean のスーパータイプを選択した場合、このフィールドは使用不可になります。「次へ」をクリックします。
    4. オプション: Bean をクラス図に追加するには、このチェック・ボックスを選択し、プロジェクトのエクスプローラー・ビューからクラス図を選択します。 各 EJB プロジェクトには、既にデフォルトのクラス図が作成されています。新規のクラス図を作成したい場合は、「新規」をクリックして、「新規クラス図」ウィザードを開きます。
    5. 「終了」をクリックします。 新規 Bean が生成され、デプロイメント記述子内に定義されます。

次のタスク

ヒント: EJB デプロイメント記述子エディターの「Bean」ページを利用して Bean を確認したり、追加設定または拡張機能とバインディングを変更または追加することができます。

フィードバック