クラス JacksonJsonMessageConverter

java.lang.ObjectSE
org.springframework.jms.support.converter.JacksonJsonMessageConverter
実装されているすべてのインターフェース:
Aware, BeanClassLoaderAware, MessageConverter, SmartMessageConverter

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

オブジェクトを BytesMessage にマッピングします。targetTypeMessageType.TEXT に設定されている場合は、TextMessage にマッピングします。TextMessage または BytesMessage をオブジェクトに変換します。

導入:
7.0
作成者:
Sebastien Deleuze
  • フィールドのサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    static final StringSE
    テキストメッセージへの書き込みに使用されるデフォルトのエンコーディング: UTF-8。
  • コンストラクターの概要

    コンストラクター
    コンストラクター
    説明
    MapperBuilder.findModules(ClassLoader) によって検出された JacksonModule でカスタマイズされた JsonMapper を使用して新しいインスタンスを構築します。
    JacksonJsonMessageConverter(tools.jackson.databind.json.JsonMapper mapper)
    提供された JsonMapper を使用して新しいインスタンスを構築します。
    JacksonJsonMessageConverter(tools.jackson.databind.json.JsonMapper.Builder builder)
    提供された JsonMapper.Builder を MapperBuilder.findModules(ClassLoader) によって検出された JacksonModule でカスタマイズして、新しいインスタンスを構築します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    protected ObjectSE
    convertFromBytesMessage(jakarta.jms.BytesMessage message, tools.jackson.databind.JavaType targetJavaType)
    BytesMessage を、指定された型の Java オブジェクトに変換します。
    protected ObjectSE
    convertFromMessage(jakarta.jms.Message message, tools.jackson.databind.JavaType targetJavaType)
    カスタムメッセージマッピングを可能にするテンプレートメソッド。
    protected ObjectSE
    convertFromTextMessage(jakarta.jms.TextMessage message, tools.jackson.databind.JavaType targetJavaType)
    TextMessage を、指定された型の Java オブジェクトに変換します。
    fromMessage(jakarta.jms.Message message)
    JMS メッセージから Java オブジェクトに変換します。
    protected tools.jackson.databind.JavaType
    getJavaTypeForMessage(jakarta.jms.Message message)
    指定された JMS メッセージの Jackson JavaType を決定します。通常は、型 ID メッセージプロパティを解析します。
    protected @Nullable ClassSE<?>
    指定された変換ヒントに基づいて、Jackson 直列化ビューを決定します。
    protected jakarta.jms.BytesMessage
    mapToBytesMessage(ObjectSE object, jakarta.jms.Session session, tools.jackson.databind.ObjectWriter objectWriter)
    指定されたオブジェクトを BytesMessage にマップします。
    protected jakarta.jms.Message
    mapToMessage(ObjectSE object, jakarta.jms.Session session, tools.jackson.databind.ObjectWriter objectWriter, MessageType targetType)
    カスタムメッセージマッピングを可能にするテンプレートメソッド。
    protected jakarta.jms.TextMessage
    mapToTextMessage(ObjectSE object, jakarta.jms.Session session, tools.jackson.databind.ObjectWriter objectWriter)
    指定されたオブジェクトを TextMessage にマップします。
    void
    Bean class loaderSE を Bean インスタンスに提供するコールバック。
    void
    テキストベースのメッセージ本文コンテンツとの間で変換するときに使用するエンコーディングを指定します。
    void
    setEncodingPropertyName(StringSE encodingPropertyName)
    バイトから文字列へのエンコーディングを運ぶ JMS メッセージプロパティの名前を指定し、変換プロセス中に BytesMessage が使用されます。
    void
    toMessage(Object, Session) を BytesMessage または TextMessage にマーシャリングするかどうかを指定します。
    void
    必要に応じて、型 ID から Java クラスへのマッピングを指定します。
    protected void
    setTypeIdOnMessage(ObjectSE object, jakarta.jms.Message message)
    指定された JMS メッセージの指定されたペイロードオブジェクトの型 ID を設定します。
    void
    setTypeIdPropertyName(StringSE typeIdPropertyName)
    含まれるオブジェクトの型 ID を保持する JMS メッセージプロパティの名前(マップされた ID 値または生の Java クラス名)を指定します。
    jakarta.jms.Message
    toMessage(ObjectSE object, jakarta.jms.Session session)
    提供されたセッションを使用して Java オブジェクトを JMS メッセージに変換し、メッセージオブジェクトを作成します。
    jakarta.jms.Message
    toMessage(ObjectSE object, jakarta.jms.Session session, @Nullable ClassSE<?> jsonView)
    指定された json ビューと提供されたセッションを使用して Java オブジェクトを JMS メッセージに変換し、メッセージオブジェクトを作成します。
    jakarta.jms.Message
    toMessage(ObjectSE object, jakarta.jms.Session session, @Nullable ObjectSE conversionHint)
    MessageConverter.toMessage(Object, Session) のバリアントで、追加の変換コンテキストを引数として受け取り、たとえばペイロードパラメーターのアノテーションを考慮に入れることができます。
    protected jakarta.jms.Message
    toMessage(ObjectSE object, jakarta.jms.Session session, tools.jackson.databind.ObjectWriter objectWriter)

    クラス ObjectSE から継承されたメソッド

    clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
  • フィールドの詳細

    • DEFAULT_ENCODING

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

    • JacksonJsonMessageConverter

      public JacksonJsonMessageConverter()
      MapperBuilder.findModules(ClassLoader) によって検出された JacksonModule でカスタマイズされた JsonMapper を使用して新しいインスタンスを構築します。
    • JacksonJsonMessageConverter

      public JacksonJsonMessageConverter(tools.jackson.databind.json.JsonMapper.Builder builder)
      提供された JsonMapper.Builder を MapperBuilder.findModules(ClassLoader) によって検出された JacksonModule でカスタマイズして、新しいインスタンスを構築します。
      関連事項:
      • JsonMapper.builder()
    • JacksonJsonMessageConverter

      public JacksonJsonMessageConverter(tools.jackson.databind.json.JsonMapper mapper)
      提供された JsonMapper を使用して新しいインスタンスを構築します。
      関連事項:
      • JsonMapper.builder()
  • メソッドの詳細

    • setTargetType

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

      デフォルトは MessageType.BYTES です。つまり、このコンバーターは BytesMessage に変換されます。このコンバーターのデフォルトバージョンは、MessageType.BYTESMessageType.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 jakarta.jms.Message toMessage(ObjectSE object, jakarta.jms.Session session) throws jakarta.jms.JMSException, MessageConversionException
      インターフェースからコピーされた説明: MessageConverter
      提供されたセッションを使用して Java オブジェクトを JMS メッセージに変換し、メッセージオブジェクトを作成します。
      次で指定:
      インターフェース MessageConvertertoMessage 
      パラメーター:
      object - 変換するオブジェクト
      session - JMS メッセージの作成に使用するセッション
      戻り値:
      JMS メッセージ
      例外:
      jakarta.jms.JMSException - JMS API メソッドによってスローされた場合
      MessageConversionException - 変換に失敗した場合
    • toMessage

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

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

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

      protected jakarta.jms.Message toMessage(ObjectSE object, jakarta.jms.Session session, tools.jackson.databind.ObjectWriter objectWriter) throws jakarta.jms.JMSException, MessageConversionException
      例外:
      jakarta.jms.JMSException
      MessageConversionException
    • mapToTextMessage

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

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

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

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

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

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

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

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

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

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

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

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

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

      protected tools.jackson.databind.JavaType getJavaTypeForMessage(jakarta.jms.Message message) throws jakarta.jms.JMSException
      指定された JMS メッセージの Jackson JavaType を決定します。通常は、型 ID メッセージプロパティを解析します。

      デフォルトの実装では、構成された型 ID プロパティ名を解析し、構成された型 ID マッピングを参照します。これは、たとえばメッセージの送信元に基づいてヒューリスティックを実行するなど、別の戦略で上書きできます。

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

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