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.
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.
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(); } }