クラス MappingJackson2MessageConverter

java.lang.ObjectSE
org.springframework.jms.support.converter.MappingJackson2MessageConverter
実装されたすべてのインターフェース:
AwareBeanClassLoaderAwareMessageConverterSmartMessageConverter

public class MappingJackson2MessageConverter extends ObjectSE implements SmartMessageConverter, BeanClassLoaderAware
Jackson 2.x を使用して JSON との間でメッセージを変換するメッセージコンバーター。

オブジェクトを BytesMessageEE にマップするか、targetTypeMessageType.TEXT に設定されている場合は TextMessageEE にマップします。TextMessageEE または BytesMessageEE からオブジェクトに変換します。

Jackson のデフォルトプロパティを次のようにカスタマイズします。

導入:
3.1.4
作成者:
Mark Pollack, Dave Syer, Juergen Hoeller, Stephane Nicoll
  • フィールドの詳細

    • DEFAULT_ENCODING

      public static final StringSE DEFAULT_ENCODING
      テキストメッセージへの書き込みに使用されるデフォルトのエンコーディング: UTF-8。
      関連事項:
  • コンストラクターの詳細

    • MappingJackson2MessageConverter

      public MappingJackson2MessageConverter()
      デフォルトの ObjectMapper を使用して MappingJackson2MessageConverter を構築します。
    • MappingJackson2MessageConverter

      public MappingJackson2MessageConverter(ObjectMapper objectMapper)
      カスタム ObjectMapper を使用して MappingJackson2MessageConverter を構築します。
      パラメーター:
      objectMapper - 使用する ObjectMapper 
      導入:
      6.1
  • メソッドの詳細

    • setObjectMapper

      public void setObjectMapper(ObjectMapper objectMapper)
      このコンバーターの ObjectMapper を設定します。

      設定されていない場合は、デフォルトの ObjectMapper が使用されます。

    • setTargetType

      public void setTargetType(MessageType targetType)
      toMessage(Object, Session)BytesMessageEE または TextMessageEE にマーシャリングするかどうかを指定します。

      デフォルトは MessageType.BYTES です。つまり、このコンバーターは BytesMessageEE にマーシャリングします。このコンバーターのデフォルトバージョンは MessageType.BYTES および MessageType.TEXT のみをサポートすることに注意してください。

      関連事項:
    • setEncoding

      public void setEncoding(StringSE encoding)
      テキストベースのメッセージ本文コンテンツとの間で変換するときに使用するエンコーディングを指定します。デフォルトのエンコーディングは "UTF-8" です。

      テキストベースのメッセージから読み取る場合、特別な JMS プロパティを通じてエンコーディングが提案されている可能性があり、この MessageConverter インスタンスに設定されたエンコーディングよりも優先されます。

      関連事項:
    • setEncodingPropertyName

      public void setEncodingPropertyName(StringSE encodingPropertyName)
      バイトから文字列へのエンコーディングを運ぶ JMS メッセージプロパティの名前を指定し、変換プロセス中に BytesMessage が使用されます。

      デフォルトはなしです。このプロパティの設定はオプションです。設定されていない場合、受信バイトメッセージのデコードには UTF-8 が使用されます。

      関連事項:
    • setTypeIdPropertyName

      public void setTypeIdPropertyName(StringSE typeIdPropertyName)
      含まれるオブジェクトの型 ID を保持する JMS メッセージプロパティの名前(マップされた ID 値または生の Java クラス名)を指定します。

      デフォルトはなしです。 注: 受信メッセージから Java オブジェクトへの変換を可能にするには、このプロパティを設定する必要があります

      関連事項:
    • setTypeIdMappings

      public void setTypeIdMappings(MapSE<StringSE,ClassSE<?>> typeIdMappings)
      必要に応じて、型 ID から Java クラスへのマッピングを指定します。これにより、Java クラス名を転送する代わりに、型 ID メッセージプロパティで合成 ID を使用できます。

      デフォルトは、カスタムマッピングなし、つまり生の Java クラス名を転送します。

      パラメーター:
      typeIdMappings - 型 ID 値をキーとして、Java クラスを値として持つ Map
    • setBeanClassLoader

      public void setBeanClassLoader(ClassLoaderSE classLoader)
      インターフェースからコピーされた説明: BeanClassLoaderAware
      Bean class loaderSE を Bean インスタンスに提供するコールバック。

      通常の Bean プロパティの設定、ただし InitializingBean's InitializingBean.afterPropertiesSet() メソッドやカスタム init-method などの初期化コールバックの前に呼び出さます。

      次で指定:
      インターフェース BeanClassLoaderAwaresetBeanClassLoader 
      パラメーター:
      classLoader - 所有クラスローダー
    • toMessage

      public MessageEE toMessage(ObjectSE object, SessionEE session) throws JMSExceptionEE, MessageConversionException
      インターフェースからコピーされた説明: MessageConverter
      提供されたセッションを使用して Java オブジェクトを JMS メッセージに変換し、メッセージオブジェクトを作成します。
      次で指定:
      インターフェース MessageConvertertoMessage 
      パラメーター:
      object - 変換するオブジェクト
      session - JMS メッセージの作成に使用するセッション
      戻り値:
      JMS メッセージ
      例外:
      JMSExceptionEE - JMS API メソッドによってスローされた場合
      MessageConversionException - 変換に失敗した場合
    • toMessage

      public MessageEE toMessage(ObjectSE object, SessionEE session, @Nullable ObjectSE conversionHint) throws JMSExceptionEE, MessageConversionException
      インターフェースからコピーされた説明: SmartMessageConverter
      引数として追加の変換コンテキストをとる MessageConverter.toMessage(Object, Session) のバリアント。ペイロードパラメーターのアノテーションを考慮します。
      次で指定:
      インターフェース SmartMessageConvertertoMessage 
      パラメーター:
      object - 変換するオブジェクト
      session - JMS メッセージの作成に使用するセッション
      conversionHint - MessageConverter に渡される追加のオブジェクト。関連する MethodParameter (null の場合があります。}
      戻り値:
      JMS メッセージ
      例外:
      JMSExceptionEE - JMS API メソッドによってスローされた場合
      MessageConversionException - 変換に失敗した場合
      関連事項:
    • toMessage

      public MessageEE toMessage(ObjectSE object, SessionEE session, @Nullable ClassSE<?> jsonView) throws JMSExceptionEE, MessageConversionException
      指定された json ビューと提供されたセッションを使用して Java オブジェクトを JMS メッセージに変換し、メッセージオブジェクトを作成します。
      パラメーター:
      object - 変換するオブジェクト
      session - JMS メッセージの作成に使用するセッション
      jsonView - コンテンツのフィルタリングに使用するビュー
      戻り値:
      JMS メッセージ
      例外:
      JMSExceptionEE - JMS API メソッドによってスローされた場合
      MessageConversionException - 変換に失敗した場合
      導入:
      4.3
    • fromMessage

      public ObjectSE fromMessage(MessageEE message) throws JMSExceptionEE, MessageConversionException
      インターフェースからコピーされた説明: MessageConverter
      JMS メッセージから Java オブジェクトに変換します。
      次で指定:
      インターフェース MessageConverterfromMessage 
      パラメーター:
      message - 変換するメッセージ
      戻り値:
      変換された Java オブジェクト
      例外:
      JMSExceptionEE - JMS API メソッドによってスローされた場合
      MessageConversionException - 変換に失敗した場合
    • toMessage

      protected MessageEE toMessage(ObjectSE object, SessionEE session, ObjectWriter objectWriter) throws JMSExceptionEE, MessageConversionException
      例外:
      JMSExceptionEE
      MessageConversionException
    • mapToTextMessage

      protected TextMessageEE mapToTextMessage(ObjectSE object, SessionEE session, ObjectWriter objectWriter) throws JMSExceptionEE, IOExceptionSE
      指定されたオブジェクトを TextMessageEE にマッピングします。
      パラメーター:
      object - マッピングされるオブジェクト
      session - 現在の JMS セッション
      objectWriter - 使用するライター
      戻り値:
      結果のメッセージ
      例外:
      JMSExceptionEE - JMS メソッドによってスローされた場合
      IOExceptionSE - I/O エラーの場合
      導入:
      4.3
      関連事項:
    • mapToBytesMessage

      protected BytesMessageEE mapToBytesMessage(ObjectSE object, SessionEE session, ObjectWriter objectWriter) throws JMSExceptionEE, IOExceptionSE
      指定されたオブジェクトを BytesMessageEE にマッピングします。
      パラメーター:
      object - マッピングされるオブジェクト
      session - 現在の JMS セッション
      objectWriter - 使用するライター
      戻り値:
      結果のメッセージ
      例外:
      JMSExceptionEE - JMS メソッドによってスローされた場合
      IOExceptionSE - I/O エラーの場合
      導入:
      4.3
      関連事項:
    • mapToMessage

      protected MessageEE mapToMessage(ObjectSE object, SessionEE session, ObjectWriter objectWriter, MessageType targetType) throws JMSExceptionEE, IOExceptionSE
      カスタムメッセージマッピングを可能にするテンプレートメソッド。setTargetType(org.springframework.jms.support.converter.MessageType)MessageType.TEXT または MessageType.BYTES でない場合に呼び出されます。

      デフォルトの実装は IllegalArgumentExceptionSE をスローします。

      パラメーター:
      object - マーシャリングするオブジェクト
      session - JMS セッション
      objectWriter - 使用するライター
      targetType - ターゲットメッセージ型 (TEXT または BYTES 以外)
      戻り値:
      結果のメッセージ
      例外:
      JMSExceptionEE - JMS メソッドによってスローされた場合
      IOExceptionSE - I/O エラーの場合
    • setTypeIdOnMessage

      protected void setTypeIdOnMessage(ObjectSE object, MessageEE message) throws JMSExceptionEE
      指定された JMS メッセージの指定されたペイロードオブジェクトの型 ID を設定します。

      デフォルトの実装は、設定された型 ID マッピングを調べて、結果の値(マッピングされた ID または生の Java クラス名)を設定された型 ID メッセージプロパティに設定します。

      パラメーター:
      object - 型 ID を設定するペイロードオブジェクト
      message - 型 ID プロパティを設定する JMS メッセージ
      例外:
      JMSExceptionEE - JMS メソッドによってスローされた場合
      関連事項:
    • convertFromTextMessage

      protected ObjectSE convertFromTextMessage(TextMessageEE message, JavaType targetJavaType) throws JMSExceptionEE, IOExceptionSE
      TextMessage を、指定された型の Java オブジェクトに変換します。
      パラメーター:
      message - 入力メッセージ
      targetJavaType - ターゲット型
      戻り値:
      オブジェクトに変換されたメッセージ
      例外:
      JMSExceptionEE - JMS によってスローされた場合
      IOExceptionSE - I/O エラーの場合
    • convertFromBytesMessage

      protected ObjectSE convertFromBytesMessage(BytesMessageEE message, JavaType targetJavaType) throws JMSExceptionEE, IOExceptionSE
      BytesMessage を、指定された型の Java オブジェクトに変換します。
      パラメーター:
      message - 入力メッセージ
      targetJavaType - ターゲット型
      戻り値:
      オブジェクトに変換されたメッセージ
      例外:
      JMSExceptionEE - JMS によってスローされた場合
      IOExceptionSE - I/O エラーの場合
    • convertFromMessage

      protected ObjectSE convertFromMessage(MessageEE message, JavaType targetJavaType) throws JMSExceptionEE, IOExceptionSE
      カスタムメッセージマッピングを可能にするテンプレートメソッド。setTargetType(org.springframework.jms.support.converter.MessageType)MessageType.TEXT または MessageType.BYTES でない場合に呼び出されます。

      デフォルトの実装は IllegalArgumentExceptionSE をスローします。

      パラメーター:
      message - 入力メッセージ
      targetJavaType - ターゲット型
      戻り値:
      オブジェクトに変換されたメッセージ
      例外:
      JMSExceptionEE - JMS によってスローされた場合
      IOExceptionSE - I/O エラーの場合
    • getJavaTypeForMessage

      protected JavaType getJavaTypeForMessage(MessageEE message) throws JMSExceptionEE
      指定された JMS メッセージの Jackson JavaType を決定します。通常は、型 ID メッセージプロパティを解析します。

      デフォルトの実装は、設定された型 ID プロパティ名を解析し、設定された型 ID マッピングを調べます。これは別の戦略でオーバーライドできます。メッセージの発信元に基づいたヒューリスティックを実行します。

      パラメーター:
      message - 型 ID プロパティを取得する JMS メッセージ
      例外:
      JMSExceptionEE - JMS メソッドによってスローされた場合
      関連事項:
    • getSerializationView

      @Nullable protected ClassSE<?> getSerializationView(@Nullable ObjectSE conversionHint)
      指定された変換ヒントに基づいて、Jackson 直列化ビューを決定します。
      パラメーター:
      conversionHint - 現在の変換の試行のためにコンバーターに渡される変換ヒントオブジェクト
      戻り値:
      直列化ビュークラス、または存在しない場合は null