javax.jms

## Interface ObjectMessage

- All Superinterfaces:
    Message

      public interface ObjectMessage
      extends Message

  An `ObjectMessage` object is used to send a message that contains a serializable object in the Java programming language ("Java object"). It inherits from the `Message` interface and adds a body containing a single reference to an object. Only `Serializable` Java objects can be used.

  If a collection of Java objects must be sent, one of the `Collection` classes provided since JDK 1.2 can be used.

  When a client receives an `ObjectMessage`, it is in read-only mode. If a client attempts to write to the message at this point, a `MessageNotWriteableException` is thrown. If `clearBody` is called, the message can now be both read from and written to.

  Since:
    JMS 1.0
  See Also:
    `Session.createObjectMessage()`, `Session.createObjectMessage(Serializable)`, `BytesMessage`, `MapMessage`, `Message`, `StreamMessage`, `TextMessage`

- - ### Field Summary

    - ### Fields inherited from interface javax.jms.Message

      `DEFAULT_DELIVERY_DELAY, DEFAULT_DELIVERY_MODE, DEFAULT_PRIORITY, DEFAULT_TIME_TO_LIVE`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Serializable` | `getObject()` Gets the serializable object containing this message's data.
    `void` | `setObject(Serializable object)` Sets the serializable object containing this message's data.

    - ### Methods inherited from interface javax.jms.Message

      `acknowledge, clearBody, clearProperties, getBody, getBooleanProperty, getByteProperty, getDoubleProperty, getFloatProperty, getIntProperty, getJMSCorrelationID, getJMSCorrelationIDAsBytes, getJMSDeliveryMode, getJMSDeliveryTime, getJMSDestination, getJMSExpiration, getJMSMessageID, getJMSPriority, getJMSRedelivered, getJMSReplyTo, getJMSTimestamp, getJMSType, getLongProperty, getObjectProperty, getPropertyNames, getShortProperty, getStringProperty, isBodyAssignableTo, propertyExists, setBooleanProperty, setByteProperty, setDoubleProperty, setFloatProperty, setIntProperty, setJMSCorrelationID, setJMSCorrelationIDAsBytes, setJMSDeliveryMode, setJMSDeliveryTime, setJMSDestination, setJMSExpiration, setJMSMessageID, setJMSPriority, setJMSRedelivered, setJMSReplyTo, setJMSTimestamp, setJMSType, setLongProperty, setObjectProperty, setShortProperty, setStringProperty`

- - ### Method Detail

    - #### setObject

          void setObject(Serializable object)
                         throws JMSException

      Sets the serializable object containing this message's data. It is important to note that an `ObjectMessage` contains a snapshot of the object at the time `setObject()` is called; subsequent modifications of the object will have no effect on the `ObjectMessage` body.
      Parameters:
        `object` - the message's data
      Throws:
        `JMSException` - if the JMS provider fails to set the object due to some internal error.
        `MessageFormatException` - if object serialization fails.
        `MessageNotWriteableException` - if the message is in read-only mode.

    - #### getObject

          Serializable getObject()
                                 throws JMSException

      Gets the serializable object containing this message's data. The default value is null.
      Returns:
        the serializable object containing this message's data
      Throws:
        `JMSException` - if the JMS provider fails to get the object due to some internal error.
        `MessageFormatException` - if object deserialization fails.

Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.