Class SimpleMessageConverter

java.lang.Object
org.springframework.jms.support.converter.SimpleMessageConverter
All Implemented Interfaces:
MessageConverter

public class SimpleMessageConverter extends Object implements MessageConverter
A simple message converter which is able to handle TextMessages, BytesMessages, MapMessages, and ObjectMessages. Used as default conversion strategy by JmsTemplate, for convertAndSend and receiveAndConvert operations.

Converts a String to a TextMessage, a byte array to a BytesMessage, a Map to a MapMessage, and a Serializable object to a ObjectMessage (or vice versa).

Note that this converter must only be used against trusted broker setups, with trusted packages for ObjectMessage deserialization to be configured at the broker level (for example: in the ActiveMQ setup) if necessary.

Since:
1.1
Author:
Juergen Hoeller, Sam Brannen
See Also:
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected jakarta.jms.BytesMessage
    createMessageForByteArray(byte[] bytes, jakarta.jms.Session session)
    Create a JMS BytesMessage for the given byte array.
    protected jakarta.jms.MapMessage
    createMessageForMap(Map<?,?> map, jakarta.jms.Session session)
    Create a JMS MapMessage for the given Map.
    protected jakarta.jms.ObjectMessage
    createMessageForSerializable(Serializable object, jakarta.jms.Session session)
    Create a JMS ObjectMessage for the given Serializable object.
    protected jakarta.jms.TextMessage
    createMessageForString(String text, jakarta.jms.Session session)
    Create a JMS TextMessage for the given String.
    protected byte[]
    extractByteArrayFromMessage(jakarta.jms.BytesMessage message)
    Extract a byte array from the given BytesMessage.
    protected Map<String,Object>
    extractMapFromMessage(jakarta.jms.MapMessage message)
    Extract a Map from the given MapMessage.
    protected Serializable
    extractSerializableFromMessage(jakarta.jms.ObjectMessage message)
    Extract a Serializable object from the given ObjectMessage.
    protected String
    extractStringFromMessage(jakarta.jms.TextMessage message)
    Extract a String from the given TextMessage.
    fromMessage(jakarta.jms.Message message)
    This implementation converts a TextMessage back to a String, a ByteMessage back to a byte array, a MapMessage back to a Map, and an ObjectMessage back to a Serializable object.
    jakarta.jms.Message
    toMessage(Object object, jakarta.jms.Session session)
    This implementation creates a TextMessage for a String, a BytesMessage for a byte array, a MapMessage for a Map, and an ObjectMessage for a Serializable object.

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • SimpleMessageConverter

      public SimpleMessageConverter()
  • Method Details

    • toMessage

      public jakarta.jms.Message toMessage(Object object, jakarta.jms.Session session) throws jakarta.jms.JMSException, MessageConversionException
      This implementation creates a TextMessage for a String, a BytesMessage for a byte array, a MapMessage for a Map, and an ObjectMessage for a Serializable object.
      Specified by:
      toMessage in interface MessageConverter
      Parameters:
      object - the object to convert
      session - the Session to use for creating a JMS Message
      Returns:
      the JMS Message
      Throws:
      jakarta.jms.JMSException - if thrown by JMS API methods
      MessageConversionException - in case of conversion failure
      See Also:
    • fromMessage

      public Object fromMessage(jakarta.jms.Message message) throws jakarta.jms.JMSException, MessageConversionException
      This implementation converts a TextMessage back to a String, a ByteMessage back to a byte array, a MapMessage back to a Map, and an ObjectMessage back to a Serializable object. Returns the plain Message object in case of an unknown message type.
      Specified by:
      fromMessage in interface MessageConverter
      Parameters:
      message - the message to convert
      Returns:
      the converted Java object
      Throws:
      jakarta.jms.JMSException - if thrown by JMS API methods
      MessageConversionException - in case of conversion failure
      See Also:
    • createMessageForString

      protected jakarta.jms.TextMessage createMessageForString(String text, jakarta.jms.Session session) throws jakarta.jms.JMSException
      Create a JMS TextMessage for the given String.
      Parameters:
      text - the String to convert
      session - current JMS session
      Returns:
      the resulting message
      Throws:
      jakarta.jms.JMSException - if thrown by JMS methods
      See Also:
      • Session.createTextMessage()
    • createMessageForByteArray

      protected jakarta.jms.BytesMessage createMessageForByteArray(byte[] bytes, jakarta.jms.Session session) throws jakarta.jms.JMSException
      Create a JMS BytesMessage for the given byte array.
      Parameters:
      bytes - the byte array to convert
      session - current JMS session
      Returns:
      the resulting message
      Throws:
      jakarta.jms.JMSException - if thrown by JMS methods
      See Also:
      • Session.createBytesMessage()
    • createMessageForMap

      protected jakarta.jms.MapMessage createMessageForMap(Map<?,?> map, jakarta.jms.Session session) throws jakarta.jms.JMSException
      Create a JMS MapMessage for the given Map.
      Parameters:
      map - the Map to convert
      session - current JMS session
      Returns:
      the resulting message
      Throws:
      jakarta.jms.JMSException - if thrown by JMS methods
      See Also:
      • Session.createMapMessage()
    • createMessageForSerializable

      protected jakarta.jms.ObjectMessage createMessageForSerializable(Serializable object, jakarta.jms.Session session) throws jakarta.jms.JMSException
      Create a JMS ObjectMessage for the given Serializable object.
      Parameters:
      object - the Serializable object to convert
      session - current JMS session
      Returns:
      the resulting message
      Throws:
      jakarta.jms.JMSException - if thrown by JMS methods
      See Also:
      • Session.createObjectMessage()
    • extractStringFromMessage

      protected String extractStringFromMessage(jakarta.jms.TextMessage message) throws jakarta.jms.JMSException
      Extract a String from the given TextMessage.
      Parameters:
      message - the message to convert
      Returns:
      the resulting String
      Throws:
      jakarta.jms.JMSException - if thrown by JMS methods
    • extractByteArrayFromMessage

      protected byte[] extractByteArrayFromMessage(jakarta.jms.BytesMessage message) throws jakarta.jms.JMSException
      Extract a byte array from the given BytesMessage.
      Parameters:
      message - the message to convert
      Returns:
      the resulting byte array
      Throws:
      jakarta.jms.JMSException - if thrown by JMS methods
    • extractMapFromMessage

      protected Map<String,Object> extractMapFromMessage(jakarta.jms.MapMessage message) throws jakarta.jms.JMSException
      Extract a Map from the given MapMessage.
      Parameters:
      message - the message to convert
      Returns:
      the resulting Map
      Throws:
      jakarta.jms.JMSException - if thrown by JMS methods
    • extractSerializableFromMessage

      protected Serializable extractSerializableFromMessage(jakarta.jms.ObjectMessage message) throws jakarta.jms.JMSException
      Extract a Serializable object from the given ObjectMessage.
      Parameters:
      message - the message to convert
      Returns:
      the resulting Serializable object
      Throws:
      jakarta.jms.JMSException - if thrown by JMS methods