JMS测试程序.docVIP

  • 3
  • 0
  • 约 5页
  • 2017-06-08 发布于河南
  • 举报
JMS测试程序

1、一个Queue中可以连接多个consumer吗? 答案不是否定的! 2、如何理解一个消息只能发送给一个Consumer? 一个Queue上可以连接多个consumer,也可以存放多个message,但每个message只能发送给其中一个客户。 3、如何区分这个消息发送给哪个客户呢?(小兔儿乖乖,把门打开。。。。。。) Message中有三个部分:header、property、body 在header中有标识! Provider: package com.dcfs.activemqtest; import java.util.Date; import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.DeliveryMode; import javax.jms.Destination; import javax.jms.MessageProducer; import javax.jms.Session; import javax.jms.TextMessage; import org.apache.activemq.ActiveMQConnection; import org.apache.activemq.ActiveMQConnectionFactory; public class Sender { private static final int SEND_NUMBER = 5; public static void main(String[] args) { // ConnectionFactory :连接工厂,JMS 用它创建连接 ConnectionFactory connectionFactory; // Connection :JMS 客户端到JMS Provider 的连接 Connection connection = null; // Session: 一个发送或接收消息的线程 Session session; // Destination :消息的目的地;消息发送给谁. Destination destination; // MessageProducer:消息发送者 MessageProducer producer; // TextMessage message; // 构造ConnectionFactory实例对象,此处采用ActiveMq的实现 connectionFactory = new ActiveMQConnectionFactory( ActiveMQConnection.DEFAULT_USER,//默认为空 ActiveMQConnection.DEFAULT_PASSWORD,//默认为空 tcp://9:61616); try { // 构造从工厂得到连接对象 connection = connectionFactory.createConnection(); // 启动 connection.start(); // 获取操作连接 session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE); // 获取session注意参数值zhan.huijing.Queue是一个服务器的queue,须在ActiveMq的console配置 destination = session.createQueue(zhan.huijing.Queue); // 得到消息生成者【发送者】 producer = session.createProducer(destination); // 设置不持久化,此处学习,实际根据项目决定 producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT); // 构造消息,此处写死,项目就是参数,或者方法获取 sendMessage(session, producer); mit(); } catch (Exception e) { e.printStackTrace(); } finally { try { if (null != connection) connection.close(); } catch (Throwable ignore) { } } } @SuppressWarn

文档评论(0)

1亿VIP精品文档

相关文档