JMS Formats - object

Your program can retrieve the payload of a JMS object message by mapping the body of the message to an SDO data graph representing the message.

Object body

You can retrieve the payload of a JMS object message as a Java byte array (byte[]). First, you must retrieve a data graph representing the message from the SIMessage instance. As is common to all data graphs representing JMS messages, the root data object of the graph contains a property named "data", and that data object in turn contains a property named "value". For a JMS object message the value property might be accessed as a Java byte array. The original Object instance that the payload represents might be reconstructed from the byte array.

Example

You can access the data within the data graph with code such as this:
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();
  }
}
Reference topic Reference topic    

Terms of Use | Feedback

Last updatedLast updated: Sep 19, 2011 7:16:32 PM CDT
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=matt&product=was-express-iseries&topic=rjy1135
File name: rjy1135.html