JMS 格式 - 对象
您的程序可以通过将消息主体映射到表示该消息的 SDO 数据图来检索 JMS 对象消息有效内容。
对象主体
可以将 JMS 对象消息的有效内容作为 Java™ 字节数组 (byte[]) 进行检索。首先,必须从 SIMessage 实例检索表示消息的数据图。由于对于表示 JMS 消息的所有数据图公共,因此图的根数据对象包含名为“data”的属性,且该数据对象又相应包含名为“value”的属性。对于 JMS 对象消息,可以将 value 属性作为 Java 字节数组进行访问。可以从字节数组重新构造有效内容表示的原始对象实例。
可以使用诸如以下代码的代码访问数据图中的数据:
SIMessage siMsg;
String format = siMsg.getFormat();
if (format.equals("JMS:object")) {
DataGraph graph = siMsg.getDataGraph();
byte[] payload = graph.getRootObject().getBytes("data/value");
if(payload != null) {
// Need to deserialize to recover original object
ObjectInputStream in =
new ObjectInputStream(new ByteArrayInputStream(payload));
Object obj = in.readObject();
}
}