「EJB 3.1 メッセージ駆動型 Bean の作成」ウィザードを使用してメッセージ駆動型 Bean を作成し、プロジェクトに追加することができます。
始める前に
Java™ プロジェクト、EJB プロジェクト、または Web プロジェクトをワークスペースに作成しておく必要があります。
このタスクについて
メッセージ駆動型 Bean とセッション Bean の主な違いは、メッセージ駆動型 Bean にはローカル・インターフェースまたはリモート・インターフェースがないことです。
メッセージ駆動型 Bean には、Bean クラスしかありません。
手順
- Java EE パースペクティブで、
プロジェクトを右クリックし、を選択します。
「EJB 3.1 メッセージ駆動型 Bean の作成」ウィザードが開きます。
- 「ソース・フォルダー」フィールドで、新しい Bean 用のソース・フォルダーを選択します。
- 「パッケージ」フィールドに、
新規 Bean のパッケージ名を入力します。
- 「名前」フィールドに、メッセージ駆動型 Bean に割り当てる名前を入力します。
規則により、Bean 名は大文字で始めます。
- 「宛先名」フィールドに、宛先に割り当てる名前を入力します。
- Java メッセージング・サービスを使用する場合は「JMS」をオンにし、
別のメッセージング・サービスを使用する場合は「JMS」をオフにします。
- 「宛先タイプ」フィールドで、
宛先タイプとして「Queue」または「Topic」を選択し、「次へ」をクリックします。
- メッセージ駆動型 Bean 固有の情報ページの「トランザクション・タイプ」フィールドで、コンテナー管理トランザクションに対する「コンテナー」、または Bean 管理トランザクションに対する
「Bean」を選択します。
- 「終了」をクリックします。Java エディターに、メッセージ駆動型 Bean クラスに対するデフォルト・コードが表示されます。
package com.ibm.test;
import javax.ejb.ActivationConfigProperty;
import javax.ejb.MessageDriven;
import javax.jms.Message;
import javax.jms.MessageListener;
/**
* メッセージ駆動型 Bean の実装クラス: TestMdb
*
*/
@MessageDriven(
activationConfig = { @ActivationConfigProperty(
propertyName = "destinationType", propertyValue = "javax.jms.Queue"
) })
public class TestMdb implements MessageListener {
/**
* Default constructor.
*/
public TestMdb() {
// TODO Auto-generated constructor stub
}
/**
* @MessageListener#onMessage(Message) を参照
*/
public void onMessage(Message message) {
// TODO 自動生成されたメソッド・スタブ
}
}
このデフォルトのメッセージ駆動型 Bean コード例で注意すべき重要な点は、以下のとおりです。
- EJB 3.1 の @MessageDriven 注釈では、一連の活動化構成パラメーターを指定します。これらのパラメーターは、メッセージ駆動型 Bean の駆動に使用される特定のタイプの JCA 1.5 アダプターに固有です。
アダプターによっては、メッセージ駆動型 Bean の宛先キューを指定できる構成パラメーターがあるものもあります。
アダプターがこれをサポートしていない場合は、XML バインディング・ファイルで <message-destination> エントリーを使用して宛先名を指定する必要があります。
- Bean クラスは、MessageListener インターフェースを実装する必要があります。
このインターフェースでは、onMessage という 1 つのメソッドのみが定義されます。
このメッセージ駆動型 Bean で監視されるキューにメッセージが到着すると、
コンテナーは Bean クラスの onMessage メソッドを呼び出し、パラメーターとして着信メッセージを受け渡します。
- @MessageDriven 注釈の ActivationConfigProperty は、メッセージング・システム固有の構成情報を提供します。