Activemq Message Type
JMS specification message types TextMessage, MapMessage, ObjectMessage, BytesMessage, and other five StreamMessage. ActiveMQ also achieved with a corresponding, respectively, below we look at the combined five kinds Spring JMS message type of transceiver code.
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, Replacement Message
/** * 向指定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..."); }
Message receiving processing section:
/ * * * For a corresponding processing according to the message type * @param destination message transmission / reception common to the Destination * @throws a JMSException * / public void the receive (Where do you want the Destination) throws a JMSException { the Message Message = jmsTemplate.receive (Where do you want); // If a text message IF (message TextMessage the instanceof) { TextMessage (TM) = (TextMessage) message; the 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()); } }