JMS消息类型

来源:互联网 发布:cnc编程工资待遇 编辑:程序博客网 时间:2024/06/06 00:06

在JMS1.1规范中规定了5种JMS消息类型,分别如下:

TextMessage,BytesMessage,MapMessage,StreamMessage,ObjectMessage

1.创建一个TextMessage

TextMessage message = session.createTextMessage("test");或message.setText("test");

2.解包一个TextMessage,去解包一个TextMessage类型的消息,客户端可以使用Message.getText方法:

TextMessage message = (TextMessage) consumer.receive();String text=message.getText();

3.创建一个BytesMessage

byte[] stockData;BytesMessage message= session.createBytesMessage();message.writeBytes(stockData);
4.解包一个BytesMessage,当接收到一个ByteMessage时,可以使用下面的方式来解包:

byte[] stockInfo;int length;length = message.readBytes(stockData);

消息体被拷贝到字节数组,客户端程序可以读取这个树组来解释数据。

5.创建一个MapMessage

MapMessage message;message = session.createMapMessage();...其他代码message.setString("Name", "CN-Java");message.setDouble("Value", stockValue);message.setLong("Time", stockTime);message.setDouble("Diff", stockDiff);message.setString("Info", "Recent server announcement causes market interest");

6.解包一个MapMessage

stockName = message.getString("Name");stockDiff = message.getDouble("Diff");stockValue = message.getDouble("Value");stockTime = message.getLong("Time");

如果你想得到整个元素的列表,可以使用MapMessage.getMapNames方法来获得。

7.创建一个StreamMessage

和MapMessage相似,一个应用程序可以按序列发送多个字段到一个消息中,这些字段都是原始类型的,要做这些,你可以使用一个StreamMessage,

message.writeString(stockName);message.writeDouble(stockValue);message.writeLong(stockTime);message.writeDouble(stockDiff);message.writeString(stockInfo);

8.解包一个StreamMessage

StreamMessage中的元素必须按照被写入的顺序读出:

stockName = message.readString();stockValue = message.readDouble();stockTime = message.readLong();stockDiff = message.readDouble();stockInfo = message.readString();

9.创建一个ObjectMessage

ObjectMessage message;message = session.createObjectMessage();message.setObject(stockObject);

10.解包ObjectMessage

去解包ObjectMessage,使用ObjectMessage.getObject得到对象,一但对象被取出来,客户端程序使用Java造型语句将对象还原成原始对象。

StockObject stockObject;stockObject = (StockObject)message.getObject();

注:本文转自http://www.blogjava.net/badboyryan/archive/2007/08/06/134713.html

0 0
原创粉丝点击