Activemq消息类型
来源:互联网 发布:印度软件产值 编辑:程序博客网 时间:2024/06/10 00:29
Activemq消息类型JMS规范中的消息类型包括TextMessage、MapMessage、ObjectMessage、BytesMessage、和StreamMessage等五种。ActiveMQ也有对应的实现,下面我们结合Spring JMS分别来看一下五种消息类型的收发代码。1、TextMessage
/** * 向指定Destination发送text消息 * @param destination * @param message */ public void sendTxtMessage(Destination destination, final String message){ if(null == destination){ destination = jmsTemplate.getDefaultDestination(); } jmsTemplate.send(destination, new MessageCreator() { public Message createMessage(Session session) throws JMSException { return session.createTextMessage(message); } }); System.out.println("springJMS send text message..."); }
2、MapMessage
/** * 向指定Destination发送map消息 * @param destination * @param message */ public void sendMapMessage(Destination destination, final String message){ if(null == destination){ destination = jmsTemplate.getDefaultDestination(); } jmsTemplate.send(destination, new MessageCreator() { public Message createMessage(Session session) throws JMSException { MapMessage mapMessage = session.createMapMessage(); mapMessage.setString("msgId",message); return mapMessage; } }); System.out.println("springJMS send map message..."); }
3、ObjectMessage
/** * 向指定Destination发送序列化的对象 * @param destination * @param object object 必须序列化 */ public void sendObjectMessage(Destination destination, final Serializable object){ if(null == destination){ destination = jmsTemplate.getDefaultDestination(); } jmsTemplate.send(destination, new MessageCreator() { public Message createMessage(Session session) throws JMSException { return session.createObjectMessage(object); } }); System.out.println("springJMS send object message..."); }
4、BytesMessage
/** * 向指定Destination发送字节消息 * @param destination * @param bytes */ public void sendBytesMessage(Destination destination, final byte[] bytes){ if(null == destination){ destination = jmsTemplate.getDefaultDestination(); } jmsTemplate.send(destination, new MessageCreator() { public Message createMessage(Session session) throws JMSException { BytesMessage bytesMessage = session.createBytesMessage(); bytesMessage.writeBytes(bytes); return bytesMessage; } }); System.out.println("springJMS send bytes message..."); }
5、streamMessage
/** * 向默认队列发送Stream消息 */ public void sendStreamMessage(Destination destination) { jmsTemplate.send(new MessageCreator() { public Message createMessage(Session session) throws JMSException { StreamMessage message = session.createStreamMessage(); message.writeString("stream string"); message.writeInt(11111); return message; } }); System.out.println("springJMS send Strem message..."); }
消息接收处理
/** * 根据消息类型进行对应的处理 * @param destination 消息发送/接收共同的Destination * @throws JMSException */ public void receive(Destination destination) throws JMSException { Message message = jmsTemplate.receive(destination); // 如果是文本消息 if (message instanceof TextMessage) { TextMessage tm = (TextMessage) message; System.out.println("from" + destination.toString() + " get textMessage:\t" + tm.getText()); } // 如果是Map消息 if (message instanceof MapMessage) { MapMessage mm = (MapMessage) message; System.out.println("from" + destination.toString() + " get textMessage:\t" + mm.getString("msgId")); } // 如果是Object消息 if (message instanceof ObjectMessage) { ObjectMessage om = (ObjectMessage) message; ExampleUser exampleUser = (ExampleUser) om.getObject(); System.out.println("from" + destination.toString() + " get ObjectMessage:\t" + ToStringBuilder.reflectionToString(exampleUser)); } // 如果是bytes消息 if (message instanceof BytesMessage) { byte[] b = new byte[1024]; int len = -1; BytesMessage bm = (BytesMessage) message; while ((len = bm.readBytes(b)) != -1) { System.out.println(new String(b, 0, len)); } } // 如果是Stream消息 if (message instanceof StreamMessage) { StreamMessage sm = (StreamMessage) message; System.out.println(sm.readString()); System.out.println(sm.readInt()); } }
0 0
- Activemq消息类型
- activeMQ消息类型
- ActiveMQ五种消息类型生产消费
- ActiveMQ学习笔记(6)——JMS消息类型
- ActiveMQ学习笔记(6)——JMS消息类型
- Spring中配置activeMQ(String类型的消息)
- Apache ActiveMQ实战(1)-基本安装配置与消息类型
- Apache ActiveMQ实战(1)-基本安装配置与消息类型
- spring整合activemq发送消息[queue类型]实例
- Apache ActiveMQ实战(1)-基本安装配置与消息类型
- spring整合activemq发送消息[queue类型]实例
- Apache ActiveMQ实战(1)-基本安装配置与消息类型
- Apache ActiveMQ实战(1)-基本安装配置与消息类型
- Apache ActiveMQ实战(1)-基本安装配置与消息类型
- ActiveMQ消息特性:消息属性
- ActiveMQ中的消息持久性
- activemq消息中间件
- activemq 收发消息
- 缓存相关操作
- 【codevs 2370】小机房的树
- CNN训练
- 常见Java问题及笔试题(十七)——阿里2017实习生研发题
- #if defined和#if !defined(c语言的宏定义)
- Activemq消息类型
- hihocoder 1378(有向图求最小割集)
- AppScan Standard扫描漏洞处理方法
- 博客初始
- mysql语句简单的增、删、改、查
- 翻转数组
- 工具类-身份证
- 几种常见算法,面试经常考
- Linux下5种动态库运行时搜索路径的方法