クラス MappingJackson2MessageConverter
- 実装されたすべてのインターフェース:
Aware
、BeanClassLoaderAware
、MessageConverter
、SmartMessageConverter
オブジェクトを BytesMessage
EE にマップするか、targetType
が MessageType.TEXT
に設定されている場合は TextMessage
EE にマップします。TextMessage
EE または BytesMessage
EE からオブジェクトに変換します。
Jackson のデフォルトプロパティを次のようにカスタマイズします。
- 導入:
- 3.1.4
- 作成者:
- Mark Pollack, Dave Syer, Juergen Hoeller, Stephane Nicoll
フィールドサマリー
コンストラクターのサマリー
コンストラクター説明デフォルトのObjectMapper
を使用してMappingJackson2MessageConverter
を構築します。MappingJackson2MessageConverter
(ObjectMapper objectMapper) カスタムObjectMapper
を使用してMappingJackson2MessageConverter
を構築します。方法の概要
修飾子と型メソッド説明protected ObjectSE
convertFromBytesMessage
(BytesMessageEE message, JavaType targetJavaType) BytesMessage を、指定された型の Java オブジェクトに変換します。protected ObjectSE
convertFromMessage
(MessageEE message, JavaType targetJavaType) カスタムメッセージマッピングを可能にするテンプレートメソッド。protected ObjectSE
convertFromTextMessage
(TextMessageEE message, JavaType targetJavaType) TextMessage を、指定された型の Java オブジェクトに変換します。fromMessage
(MessageEE message) JMS メッセージから Java オブジェクトに変換します。protected JavaType
getJavaTypeForMessage
(MessageEE message) 指定された JMS メッセージの Jackson JavaType を決定します。通常は、型 ID メッセージプロパティを解析します。protected ClassSE<?>
getSerializationView
(ObjectSE conversionHint) 指定された変換ヒントに基づいて、Jackson 直列化ビューを決定します。protected BytesMessageEE
mapToBytesMessage
(ObjectSE object, SessionEE session, ObjectWriter objectWriter) 指定されたオブジェクトをBytesMessage
EE にマッピングします。protected MessageEE
mapToMessage
(ObjectSE object, SessionEE session, ObjectWriter objectWriter, MessageType targetType) カスタムメッセージマッピングを可能にするテンプレートメソッド。protected TextMessageEE
mapToTextMessage
(ObjectSE object, SessionEE session, ObjectWriter objectWriter) 指定されたオブジェクトをTextMessage
EE にマッピングします。void
setBeanClassLoader
(ClassLoaderSE classLoader) Beanclass loader
SE を Bean インスタンスに提供するコールバック。void
setEncoding
(StringSE encoding) テキストベースのメッセージ本文コンテンツとの間で変換するときに使用するエンコーディングを指定します。void
setEncodingPropertyName
(StringSE encodingPropertyName) バイトから文字列へのエンコーディングを運ぶ JMS メッセージプロパティの名前を指定し、変換プロセス中に BytesMessage が使用されます。void
setObjectMapper
(ObjectMapper objectMapper) このコンバーターのObjectMapper
を設定します。void
setTargetType
(MessageType targetType) void
setTypeIdMappings
(MapSE<StringSE, ClassSE<?>> typeIdMappings) 必要に応じて、型 ID から Java クラスへのマッピングを指定します。protected void
setTypeIdOnMessage
(ObjectSE object, MessageEE message) 指定された JMS メッセージの指定されたペイロードオブジェクトの型 ID を設定します。void
setTypeIdPropertyName
(StringSE typeIdPropertyName) 含まれるオブジェクトの型 ID を保持する JMS メッセージプロパティの名前(マップされた ID 値または生の Java クラス名)を指定します。提供されたセッションを使用して Java オブジェクトを JMS メッセージに変換し、メッセージオブジェクトを作成します。protected MessageEE
toMessage
(ObjectSE object, SessionEE session, ObjectWriter objectWriter) 指定された json ビューと提供されたセッションを使用して Java オブジェクトを JMS メッセージに変換し、メッセージオブジェクトを作成します。MessageConverter.toMessage(Object, Session)
のバリアントで、追加の変換コンテキストを引数として受け取り、たとえばペイロードパラメーターのアノテーションを考慮に入れることができます。
フィールドの詳細
DEFAULT_ENCODING
テキストメッセージへの書き込みに使用されるデフォルトのエンコーディング: UTF-8。- 関連事項:
コンストラクターの詳細
MappingJackson2MessageConverter
public MappingJackson2MessageConverter()デフォルトのObjectMapper
を使用してMappingJackson2MessageConverter
を構築します。MappingJackson2MessageConverter
カスタムObjectMapper
を使用してMappingJackson2MessageConverter
を構築します。- パラメーター:
objectMapper
- 使用するObjectMapper
- 導入:
- 6.1
メソッドの詳細
setObjectMapper
このコンバーターのObjectMapper
を設定します。設定されていない場合は、デフォルトの
ObjectMapper
が使用されます。setTargetType
toMessage(Object, Session)
がBytesMessage
EE またはTextMessage
EE にマーシャリングするかどうかを指定します。デフォルトは
MessageType.BYTES
です。つまり、このコンバーターはBytesMessage
EE にマーシャリングします。このコンバーターのデフォルトバージョンはMessageType.BYTES
およびMessageType.TEXT
のみをサポートすることに注意してください。setEncoding
テキストベースのメッセージ本文コンテンツとの間で変換するときに使用するエンコーディングを指定します。デフォルトのエンコーディングは "UTF-8" です。テキストベースのメッセージから読み取る場合、特別な JMS プロパティを通じてエンコーディングが提案されている可能性があり、この MessageConverter インスタンスに設定されたエンコーディングよりも優先されます。
setEncodingPropertyName
バイトから文字列へのエンコーディングを運ぶ JMS メッセージプロパティの名前を指定し、変換プロセス中に BytesMessage が使用されます。デフォルトはなしです。このプロパティの設定はオプションです。設定されていない場合、受信バイトメッセージのデコードには UTF-8 が使用されます。
setTypeIdPropertyName
含まれるオブジェクトの型 ID を保持する JMS メッセージプロパティの名前(マップされた ID 値または生の Java クラス名)を指定します。デフォルトはなしです。 注: 受信メッセージから Java オブジェクトへの変換を可能にするには、このプロパティを設定する必要があります。
setTypeIdMappings
必要に応じて、型 ID から Java クラスへのマッピングを指定します。これにより、Java クラス名を転送する代わりに、型 ID メッセージプロパティで合成 ID を使用できます。デフォルトは、カスタムマッピングなし、つまり生の Java クラス名を転送します。
- パラメーター:
typeIdMappings
- 型 ID 値をキーとして、Java クラスを値として持つ Map
setBeanClassLoader
インターフェースからコピーされた説明:BeanClassLoaderAware
Beanclass loader
SE を Bean インスタンスに提供するコールバック。通常の Bean プロパティの設定後、ただし
InitializingBean's
InitializingBean.afterPropertiesSet()
メソッドやカスタム init-method などの初期化コールバックの前に呼び出されます。- 次で指定:
- インターフェース
BeanClassLoaderAware
のsetBeanClassLoader
- パラメーター:
classLoader
- 所有クラスローダー
toMessage
public MessageEE toMessage(ObjectSE object, SessionEE session) throws JMSExceptionEE, MessageConversionException インターフェースからコピーされた説明:MessageConverter
提供されたセッションを使用して Java オブジェクトを JMS メッセージに変換し、メッセージオブジェクトを作成します。- 次で指定:
- インターフェース
MessageConverter
のtoMessage
- パラメーター:
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)
のバリアントで、追加の変換コンテキストを引数として受け取り、たとえばペイロードパラメーターのアノテーションを考慮に入れることができます。- 次で指定:
- インターフェース
SmartMessageConverter
のtoMessage
- パラメーター:
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
インターフェースからコピーされた説明:MessageConverter
JMS メッセージから Java オブジェクトに変換します。- 次で指定:
- インターフェース
MessageConverter
のfromMessage
- パラメーター:
message
- 変換するメッセージ- 戻り値:
- 変換された Java オブジェクト
- 例外:
JMSExceptionEE
- JMS API メソッドによってスローされた場合MessageConversionException
- 変換に失敗した場合
toMessage
protected MessageEE toMessage(ObjectSE object, SessionEE session, ObjectWriter objectWriter) throws JMSExceptionEE, MessageConversionException mapToTextMessage
protected TextMessageEE mapToTextMessage(ObjectSE object, SessionEE session, ObjectWriter objectWriter) throws JMSExceptionEE, IOExceptionSE 指定されたオブジェクトをTextMessage
EE にマッピングします。- パラメーター:
object
- マッピングされるオブジェクトsession
- 現在の JMS セッションobjectWriter
- 使用するライター- 戻り値:
- 結果のメッセージ
- 例外:
JMSExceptionEE
- JMS メソッドによってスローされた場合IOExceptionSE
- I/O エラーの場合- 導入:
- 4.3
- 関連事項:
mapToBytesMessage
protected BytesMessageEE mapToBytesMessage(ObjectSE object, SessionEE session, ObjectWriter objectWriter) throws JMSExceptionEE, IOExceptionSE 指定されたオブジェクトをBytesMessage
EE にマッピングします。- パラメーター:
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
でない場合に呼び出されます。デフォルトの実装は
IllegalArgumentException
SE をスローします。- パラメーター:
object
- マーシャリングするオブジェクトsession
- JMS セッションobjectWriter
- 使用するライターtargetType
- ターゲットメッセージ型 (TEXT または BYTES 以外)- 戻り値:
- 結果のメッセージ
- 例外:
JMSExceptionEE
- JMS メソッドによってスローされた場合IOExceptionSE
- I/O エラーの場合
setTypeIdOnMessage
指定された 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
でない場合に呼び出されます。デフォルトの実装は
IllegalArgumentException
SE をスローします。- パラメーター:
message
- 入力メッセージtargetJavaType
- ターゲット型- 戻り値:
- オブジェクトに変換されたメッセージ
- 例外:
JMSExceptionEE
- JMS によってスローされた場合IOExceptionSE
- I/O エラーの場合
getJavaTypeForMessage
指定された JMS メッセージの Jackson JavaType を決定します。通常は、型 ID メッセージプロパティを解析します。デフォルトの実装では、構成された型 ID プロパティ名を解析し、構成された型 ID マッピングを参照します。これは、たとえばメッセージの送信元に基づいてヒューリスティックを実行するなど、別の戦略で上書きできます。
- パラメーター:
message
- 型 ID プロパティを取得する JMS メッセージ- 例外:
JMSExceptionEE
- JMS メソッドによってスローされた場合- 関連事項:
getSerializationView
指定された変換ヒントに基づいて、Jackson 直列化ビューを決定します。- パラメーター:
conversionHint
- 現在の変換の試行のためにコンバーターに渡される変換ヒントオブジェクト- 戻り値:
- 直列化ビュークラス、または存在しない場合は
null