Session Beanを呼び出すクライアントの作成に特別な定義ファイルは必要ありません。クライアントとなるJavaクラス(サーブレットなど)に、Session Beanのビジネスインタフェースを取得する処理と、それを用いてビジネスメソッドを呼び出す処理を記述します。
ビジネスインタフェースの取得
Dependency Injectionによって簡単にビジネスインタフェースを取得することができます。
ビジネスインタフェースを取得する場合には、以下のように@EJBアノテーションを使用します。
EJBアノテーションの使用例
@EJB private Calc calc; |
記述例 | 説明 |
---|---|
ejb/Calc | Session Beanが対応付けられているJNDI名を指定します。 |
Calc | ビジネスインタフェースです。(ローカルインタフェースです。) |
Calc#add(int, int) | ビジネスメソッドです。 |
注意
Dependency Injectionは、サーブレットやEJBなどJava EEコンテナで管理されているJava EEコンポーネントでしか使用することができません。それ以外のクラスでは、JNDIのlookupによってオブジェクトを取得します。
詳細は、"8.2.2 JNDIのlookupによるオブジェクトの取得について"を参照してください。
ビジネスメソッドの呼び出し
ビジネスメソッドを呼び出すには、取得したビジネスインタフェースを利用してメソッドを呼び出します。
ビジネスメソッドの呼び出し例
int result = calc.add(100,200); |
Message-driven Beanにメッセージを送信するクライアントの作成に特別な定義ファイルは必要ありません。クライアントとなるJavaクラス(サーブレットなど)に、Message-driven BeanのJMSコネクションファクトリなどを取得する処理と、それを用いてメッセージを送信する処理を記述します。
ここではPoint-To-PointモデルのMessage-driven Beanにメッセージを送信する場合について説明します。
JMSコネクションファクトリおよびJMS Destinationの取得
Dependency Injectionによって簡単にJMSコネクションファクトリやJMS Destinationを取得することができます。
JMSコネクションファクトリやJMS Destinationを取得する場合には、以下のように@Resourceアノテーションを使用します。
Resourceアノテーションの使用例
@Resource(name="jms/QueueCF001") private QueueConnectionFactory qcf; @Resource(name="jms/Queue") private Queue queue; |
記述例 | 説明 |
---|---|
jms/QueueCF001 | JMSコネクションファクトリ名 |
jms/Queue | JMS Destination名 |
注意
Dependency Injectionは、サーブレットやEJBなどJava EEコンテナで管理されているJava EEコンポーネントでしか使用することができません。それ以外のクラスでは、JNDIのlookupによってオブジェクトを取得します。
詳細は、"8.2.2 JNDIのlookupによるオブジェクトの取得について"を参照してください。
メッセージの送信
JMSコネクションファクトリおよびJMS Destinationを取得したあとのメッセージの送信手順はEJB 2.1までのものと同じです。以下にその例を示します。
メッセージ送信の例
// connection, session, senderの作成 QueueConnection connection = qcf.createQueueConnection(); QueueSession session = connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); QueueSender sender = session.createSender(queue); // テキストメッセージの送信 TextMessage msg = session.createTestMessage(); msg.setText("Hello World!"); sender.send(msg); // クローズ connection.close(); |