Class SQSObjectMessage

java.lang.Object
com.amazon.sqs.javamessaging.message.SQSMessage
com.amazon.sqs.javamessaging.message.SQSObjectMessage
All Implemented Interfaces:
jakarta.jms.Message, jakarta.jms.ObjectMessage

public class SQSObjectMessage extends SQSMessage implements jakarta.jms.ObjectMessage
An ObjectMessage object is used to send a message that contains a Java serializable 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.

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.

  • Constructor Details

    • SQSObjectMessage

      public SQSObjectMessage(Acknowledger acknowledger, String queueUrl, software.amazon.awssdk.services.sqs.model.Message sqsMessage) throws jakarta.jms.JMSException
      Convert received SQSMessage into ObjectMessage
      Throws:
      jakarta.jms.JMSException
    • SQSObjectMessage

      public SQSObjectMessage() throws jakarta.jms.JMSException
      Create new empty ObjectMessage to send.
      Throws:
      jakarta.jms.JMSException
    • SQSObjectMessage

      public SQSObjectMessage(Serializable payload) throws jakarta.jms.JMSException
      Create new ObjectMessage with payload to send.
      Throws:
      jakarta.jms.JMSException
  • Method Details

    • setObject

      public void setObject(Serializable payload) throws jakarta.jms.JMSException
      Sets the Serializable containing this message's body
      Specified by:
      setObject in interface jakarta.jms.ObjectMessage
      Parameters:
      payload - The Serializable containing the message's body
      Throws:
      jakarta.jms.MessageNotWriteableException - If the message is in read-only mode.
      jakarta.jms.MessageFormatException - If object serialization fails.
      jakarta.jms.JMSException
    • getObject

      public Serializable getObject() throws jakarta.jms.JMSException
      Gets the Serializable containing this message's body
      Specified by:
      getObject in interface jakarta.jms.ObjectMessage
      Throws:
      jakarta.jms.MessageFormatException - If object deserialization fails.
      jakarta.jms.JMSException
    • clearBody

      public void clearBody() throws jakarta.jms.JMSException
      Sets the message body to write mode, and sets the object body to null
      Specified by:
      clearBody in interface jakarta.jms.Message
      Overrides:
      clearBody in class SQSMessage
      Throws:
      jakarta.jms.JMSException - If directly called
    • deserialize

      protected static Serializable deserialize(String serialized) throws jakarta.jms.JMSException
      Deserialize the String into Serializable object.
      Throws:
      jakarta.jms.JMSException
    • serialize

      protected static String serialize(Serializable serializable) throws jakarta.jms.JMSException
      Serialize the Serializable object to String.
      Throws:
      jakarta.jms.JMSException
    • getMessageBody

      public String getMessageBody()