插入 Java 代码以将消息发送到 JMS 队列侦听器

使用“片段”视图来插入用于将文本消息发送至 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();
		}
}
}

要插入 Java 代码以将消息发送到 JMS 队列侦听器,请执行以下操作:

  1. 在 J2EE 透视图中,在 Java 编辑器中打开要添加代码段的 Java 文件。
  2. 将光标放置在 Java 文件中想要插入代码的位置。
  3. 在“片段”视图中,展开 EJB 抽屉并双击将消息发送到 JMS 队列侦听器 此时会打开“插入消息驱动的 Bean 队列类型服务”向导。
  4. 输入提供程序 URL名称服务类型,以便为队列连接工厂和队列名称找到资源引用。如果客户机和侦听器位于相同的应用程序服务器容器中,则您可以选择使用缺省上下文属性来查找此引用
  5. 单击下一步
  6. 为队列连接工厂选择资源引用。如果尚未创建引用,则单击新建队列连接工厂引用。此时会打开“添加引用”向导,您可以在其中定义 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 类具有称为 setErrorHandler(ServiceLocatorErrorHandler handler) 的静态方法,可以使用该方法来为在查找 home 接口时出现的错误状态指定特定错误处理程序。缺省处理程序只对处理的异常调用 printStackTrace()。

相关任务
插入 Java 代码以创建 EJB 实例
插入 Java 代码以查找 EJB 实例
插入 Java 代码以调用会话 bean 方法
定义 J2EE 模块中的引用

反馈