JMS规范之JMS消息
?
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);// 创建目的地Destination destination = session.createQueue("JMS.DEMO");// 创建生产者MessageProducer publisher = session.createProducer(destination);// 设置传输模式publisher.setDeliveryMode(DeliveryMode.PERSISTENT);// 创建消息TextMessage message = session.createTextMessage("Test Message");// 发送消息message.setObjectProperty("myProp", new HashMap() { { this.put("key1", "value1"); this.put("key2", "value2"); }});publisher.send(message);?
3) 清除属性:
JMS不能清除单个属性,但可以通过Message.clearProperties()方法清除所有消息属性;
?
3、 消息体 :JMS提供了5种类型的消息体:
1) StreamMessage:消息体是Java流,写入和读出都是顺序的;
2) MapMessage:消息体包含key-value对,key为String,value为基本类型,可以通过迭代器访问;
3) TextMessage:消息体是String;
4) ObjectMessage:消息体是可序列化的Java对象;
5) BytesMessage:消息体是字节数组;
?
可以通过message.clearBody()来清除消息体;但在消费端,消息体是只读的,针对消息的写操作都会抛出MessageNotWritableException异常;