メッセージを 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();
		}
}
}

手順

  1. Java EE パースペクティブで、コード・スニペットを追加する Java ファイルを Java エディター内で開き、Java ファイル内のコードを挿入するポイントにカーソルを置きます。
  2. 「スニペット」ビューで EJB ドロワーを拡張して、「メッセージを JMS キュー・リスナーに送る」をダブルクリックします。 「メッセージ駆動型 Bean キュー・タイプ・サービスの挿入」ウィザードが開きます。
  3. メッセージの EJB 参照を選択し、「次へ」クリックします。
  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() を呼び出すだけです。


フィードバック