插入將訊息傳給 JMS 佇列接聽器的 Java 程式碼

請利用「片段」視圖來插入將文字訊息傳給 JMS 佇列接聽器的 Java™ 程式碼。 在許多情況下,JMS 佇列接聽器是一個訊息驅動 Bean。

在您執行這個步驟之前,您應該有已適當配置了 JMS 接聽器、訊息佇列和 Connection Factory 的應用程式伺服器。

插入的 Java 程式碼會利用 Queue Connection Factory 參照和您提供的佇列名稱參照,將一則訊息傳給 JMS 佇列接聽器。您可以更新 setText() 方法中的參數值來變更訊息的文字。

將訊息傳給 JMS 佇列接聽器的範例片段插入項目

在插入片段之前:
public class Main {

	public void sendMyMessage() {
		// 將片段插在這裡
		
	}
	
}
在插入片段之後,將游標放在 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() {
		// 將片段插在這裡
		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 自動產生的 catch 區塊
			jmse.printStackTrace();
		}
}
}

如果要插入 Java 程式碼將訊息傳給 JMS 佇列接聽器,請執行下列動作:

  1. 在 J2EE 視景中,利用 Java 編輯器來開啟您要在其中新增程式碼片段的 Java 檔。
  2. 將游標置於 Java 檔中,要插入程式碼的那一點。
  3. 在「片段」視圖中,展開 EJB 抽屜,按兩下將訊息傳給 JMS 佇列接聽器 這時會開啟「插入訊息驅動 Bean 佇列類型服務」精靈。
  4. 輸入提供者 URL名稱服務類型來尋找 Queue Connection Factory 和佇列名稱的資源參照。如果用戶端和接聽器在相同應用程式伺服器儲存器中,您可以選取利用預設環境定義內容來執行這個參照的查閱
  5. 下一步
  6. 選取 Queue Connection Factory 的資源參照。如果您還未建立參照,請按一下新建 Queue Connection Factory 參照。這時會開啟「新增參照」精靈,供您定義 javax.jms.QueueConnectionFactory 資源參照。
  7. 下一步
  8. 選取佇列名稱的資源參照。如果您還未建立參照,請按一下新建佇列名稱參照。這時會開啟「新增參照」精靈,供您定義 javax.jms.Queue 資源參照。
  9. 按一下完成
註: serviceLocatorMgr.jar 檔會被當作公用程式 JAR 檔,新增至您所編輯之 Java 類別所屬的每一支企業應用程式中。這個 serviceLocator.jar 檔含有在插入的 Java 程式碼片段中所用的 ServiceLocatorManager 類別。這個類別會將 Home 介面和 InitialContexts 的查閱作業最佳化,並且確保它們在整個應用程式只被查閱一次。 由於新增了公用程式 JAR 檔,因此 Java 檔所屬的模組或 Java 公用程式專案中,也會加入 serviceLocator.jar 檔的 Java JAR 相依關係。

ServiceLocatorManager 類別有一個 static 方法叫做 setErrorHandler(ServiceLocatorErrorHandler handler), 可以指定特定的錯誤處理常式,來處理查閱 Home 介面時所發生的錯誤狀況。預設的處理常式只要針對所處理的異常狀況呼叫 printStackTrace() 即可。

相關工作
插入 Java 程式碼以建立 EJB 實例
插入 Java 程式碼以尋找 EJB 實例
插入 Java 程式碼以呼叫 Session Bean 方法
定義 J2EE 模組中的參照
使用條款 | 讀者意見
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.