メッセージを JMS キュー・リスナーに送るための Java コードの挿入

「断片」ビューを使用して、テキスト・メッセージを JMS キュー・リスナーに送る Java™ コードを挿入できます。多くの場合、JMS キュー・リスナーはメッセージ駆動型 Bean です。
このステップを実行する前に、アプリケーション・サーバーを、JMS リスナー、メッセージ・キュー、および接続ファクトリーで適切に構成する必要があります。

挿入された Java コードは、指定されたキュー接続ファクトリー参照とキュー名参照を利用してメッセージを JMS をキュー・リスナーに送ります。 setText() メソッド内のパラメーターの値を更新して、メッセージ・テキストを変更することもできます。

メッセージを JMS キュー・リスナーに送るための断片挿入の例

断片の挿入前:
public class Main {

	public void sendMyMessage() {
		// insert snippet here
		
	}
	
}
断片の挿入後、カーソルを sendMyMessage メソッド内に置いて:
import com.ibm.etools.service.locator.ServiceLocatorManager;
import javax.jms.*;
import javax.naming.*;
public class Main {

	private final static String STATIC_CONNECTION_FACTORY_REF_NAME = "queueconnectionfactoryreference";
	private final static String STATIC_QUEUE_REF_NAME = "queuename";
	public void sendMyMessage() {
		// insert snippet here
		send_queuenameMessage();
	}
	
	protected void send_queuenameMessage() {
		try {
			QueueConnectionFactory qConnectionFactory = ServiceLocatorManager
				.lookupQueueConnectionFactory(STATIC_CONNECTION_FACTORY_REF_NAME);
			Queue queue = ServiceLocatorManager
				.lookupQueue(STATIC_QUEUE_REF_NAME);
			QueueConnection qConnection = qConnectionFactory
				.createQueueConnection();
			QueueSession qSession = qConnection.createQueueSession(false,
				Session.AUTO_ACKNOWLEDGE);
			QueueSender sender = qSession.createSender(queue);
			TextMessage message = qSession.createTextMessage();
			message.setText("Foo Sample Queue message");
			sender.send(message);
			sender.close();
			qSession.close();
			qConnection.close();
		} catch (JMSException jmse) {
			// TODO Auto-generated catch block
			jmse.printStackTrace();
		}
}
}

メッセージを JMS キュー・リスナーに送るための Java コードを挿入する手順は、次のとおりです。

  1. J2EE パースペクティブで、コードの断片を追加したい Java ファイルを Java エディターで開く。
  2. Java ファイルのコードを挿入するポイントにカーソルを置く。
  3. 「断片」ビューで EJB ドロワーを拡張して、 「メッセージを JMS キュー・リスナーに送る」をダブルクリックする。 「メッセージ駆動型 Bean キュー・タイプ・サービスの挿入」ウィザードが開きます。
  4. プロバイダー URL」と「ネーム・サービス・タイプ」を入力して、 キュー接続ファクトリーおよびキュー名のためのリソース参照を位置指定する。 クライアントとリスナーが同じアプリケーション・サーバー・コンテナー内にある場合は、 「この参照に対するルックアップの実行にデフォルトのコンテキスト・プロパティーを使用する」を選択できます。
  5. 次へ」をクリックする。
  6. キュー接続ファクトリーのためのリソース参照を選択する。 参照をまだ作成していない場合は、「新規キュー接続ファクトリー参照」をクリックする。 「参照の追加」ウィザードが開きます。このウィザードで javax.jms.QueueConnectionFactory リソース参照を定義できます。
  7. 次へ」をクリックする。
  8. キュー名のためのリソース参照を選択する。 参照をまだ作成していない場合は、「新規キュー名参照」をクリックする。 「参照の追加」ウィザードが開きます。このウィザードで javax.jms.Queue リソース参照を定義できます。
  9. 「終了」をクリックする。
注: 編集した Java クラスが含まれる各エンタープライズ・アプリケーションに、 serviceLocatorMgr.jar がユーティリティー JAR ファイルとして追加されます。 この serviceLocator.jar ファイルには、挿入された Java コードの断片内で使用される ServiceLocatorManager クラスが含まれています。このクラスによって、ホーム・インターフェースと InitialContexts のルックアップが最適化され、アプリケーション全体で一度だけルックアップされます。 ユーティリティー JAR ファイルが追加されるので、Java ファイルが属するモジュールまたは Java ユーティリティー・プロジェクトについて、serviceLocator.jar ファイルの Java JAR 依存関係が追加されます。

ServiceLocatorManager クラスには、setErrorHandler (ServiceLocatorErrorHandler ハンドラー) と呼ばれる静的メソッドがあります。 このメソッドを使用すると、ホーム・インターフェースを検索するときに発生するエラー条件に対して、 特定のエラー・ハンドラーを指定できます。デフォルトのハンドラーは、処理される例外について printStackTrace() を呼び出すだけです。

関連タスク
EJB インスタンスを作成するための Java コードの挿入
EJB インスタンスを検索するための Java コードの挿入
セッション Bean メソッドを呼び出すための Java コードの挿入
J2EE モジュール内の参照の定義

フィードバック