public class MappingJackson2MessageConverter extends ObjectSE implements SmartMessageConverter, BeanClassLoaderAware
BytesMessage
EE に、または targetType
が MessageType.TEXT
に設定されている場合は TextMessage
EE にマップします。TextMessage
EE または BytesMessage
EE からオブジェクトに変換します。Jackson のデフォルトプロパティを次のようにカスタマイズします。
Spring 4.3 の時点で、Jackson 2.6 以降と互換性があります。
修飾子と型 | フィールドと説明 |
---|---|
static StringSE | DEFAULT_ENCODING テキストメッセージへの書き込みに使用されるデフォルトのエンコーディング: UTF-8。 |
コンストラクターと説明 |
---|
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 オブジェクトに変換します。 |
ObjectSE | 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) Bean class 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 クラス名)を指定します。 |
MessageEE | toMessage(ObjectSE object, SessionEE session) 提供されたセッションを使用して Java オブジェクトを JMS メッセージに変換し、メッセージオブジェクトを作成します。 |
MessageEE | toMessage(ObjectSE object, SessionEE session, ClassSE<?> jsonView) 指定された json ビューと提供されたセッションを使用して Java オブジェクトを JMS メッセージに変換し、メッセージオブジェクトを作成します。 |
MessageEE | toMessage(ObjectSE object, SessionEE session, ObjectSE conversionHint) 引数として追加の変換コンテキストをとる MessageConverter.toMessage(Object, Session) のバリアント。 |
protected MessageEE | toMessage(ObjectSE object, SessionEE session, ObjectWriter objectWriter) |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public void setObjectMapper(ObjectMapper objectMapper)
ObjectMapper
を指定します。public void setTargetType(MessageType targetType)
toMessage(Object, Session)
が BytesMessage
EE または TextMessage
EE にマーシャリングするかどうかを指定します。 デフォルトは MessageType.BYTES
です。つまり、このコンバーターは BytesMessage
EE にマーシャリングします。このコンバーターのデフォルトバージョンは MessageType.BYTES
および MessageType.TEXT
のみをサポートすることに注意してください。
public void setEncoding(StringSE encoding)
テキストベースのメッセージから読み取る場合、エンコーディングは、この MessageConverter インスタンスに設定されたエンコーディングよりも優先される特別な JMS プロパティを通じて提案されている場合があります。
public void setEncodingPropertyName(StringSE encodingPropertyName)
デフォルトはなしです。このプロパティの設定はオプションです。設定されていない場合、受信バイトメッセージのデコードには UTF-8 が使用されます。
public void setTypeIdPropertyName(StringSE typeIdPropertyName)
デフォルトはなしです。 注: 受信メッセージから Java オブジェクトへの変換を可能にするには、このプロパティを設定する必要があります。
public void setTypeIdMappings(MapSE<StringSE,ClassSE<?>> typeIdMappings)
デフォルトは、カスタムマッピングなし、つまり生の Java クラス名を転送します。
typeIdMappings
- 型 ID 値をキーとして、Java クラスを値として持つ Mappublic void setBeanClassLoader(ClassLoaderSE classLoader)
BeanClassLoaderAware
class loader
SE を Bean インスタンスに提供するコールバック。 通常の Bean プロパティの設定後、ただし InitializingBean's
InitializingBean.afterPropertiesSet()
メソッドやカスタム init-method などの初期化コールバックの前に呼び出されます。
BeanClassLoaderAware
の setBeanClassLoader
classLoader
- 所有クラスローダー public MessageEE toMessage(ObjectSE object, SessionEE session) throws JMSExceptionEE, MessageConversionException
MessageConverter
MessageConverter
の toMessage
object
- 変換するオブジェクト session
- JMS メッセージの作成に使用するセッション JMSExceptionEE
- JMS API メソッドによってスローされた場合 MessageConversionException
- 変換に失敗した場合 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
の場合があります。}JMSExceptionEE
- JMS API メソッドによってスローされた場合 MessageConversionException
- 変換に失敗した場合 MessageConverter.toMessage(Object, Session)
public MessageEE toMessage(ObjectSE object, SessionEE session, @Nullable ClassSE<?> jsonView) throws JMSExceptionEE, MessageConversionException
object
- 変換するオブジェクト session
- JMS メッセージの作成に使用するセッション jsonView
- コンテンツのフィルタリングに使用するビュー JMSExceptionEE
- JMS API メソッドによってスローされた場合 MessageConversionException
- 変換に失敗した場合 public ObjectSE fromMessage(MessageEE message) throws JMSExceptionEE, MessageConversionException
MessageConverter
MessageConverter
の fromMessage
message
- 変換するメッセージ JMSExceptionEE
- JMS API メソッドによってスローされた場合 MessageConversionException
- 変換に失敗した場合 protected MessageEE toMessage(ObjectSE object, SessionEE session, ObjectWriter objectWriter) throws JMSExceptionEE, MessageConversionException
protected TextMessageEE mapToTextMessage(ObjectSE object, SessionEE session, ObjectWriter objectWriter) throws JMSExceptionEE, IOExceptionSE
TextMessage
EE にマッピングします。object
- マッピングされるオブジェクト session
- 現在の JMS セッション objectWriter
- 使用するライター JMSExceptionEE
- JMS メソッドによってスローされた場合 IOExceptionSE
- I/O エラーの場合 Session.createBytesMessage()
EEprotected BytesMessageEE mapToBytesMessage(ObjectSE object, SessionEE session, ObjectWriter objectWriter) throws JMSExceptionEE, IOExceptionSE
BytesMessage
EE にマッピングします。object
- マッピングされるオブジェクト session
- 現在の JMS セッション objectWriter
- 使用するライター JMSExceptionEE
- JMS メソッドによってスローされた場合 IOExceptionSE
- I/O エラーの場合 Session.createBytesMessage()
EEprotected 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 エラーの場合 protected void setTypeIdOnMessage(ObjectSE object, MessageEE message) throws JMSExceptionEE
デフォルトの実装は、設定された型 ID マッピングを調べて、結果の値(マッピングされた ID または生の Java クラス名)を設定された型 ID メッセージプロパティに設定します。
object
- 型 ID を設定するペイロードオブジェクト message
- 型 ID プロパティを設定する JMS メッセージ JMSExceptionEE
- JMS メソッドによってスローされた場合 getJavaTypeForMessage(javax.jms.Message)
, setTypeIdPropertyName(String)
, setTypeIdMappings(java.util.Map)
protected ObjectSE convertFromTextMessage(TextMessageEE message, JavaType targetJavaType) throws JMSExceptionEE, IOExceptionSE
message
- 入力メッセージ targetJavaType
- ターゲット型 JMSExceptionEE
- JMS によってスローされた場合 IOExceptionSE
- I/O エラーの場合 protected ObjectSE convertFromBytesMessage(BytesMessageEE message, JavaType targetJavaType) throws JMSExceptionEE, IOExceptionSE
message
- 入力メッセージ targetJavaType
- ターゲット型 JMSExceptionEE
- JMS によってスローされた場合 IOExceptionSE
- I/O エラーの場合 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 エラーの場合 protected JavaType getJavaTypeForMessage(MessageEE message) throws JMSExceptionEE
デフォルトの実装は、設定された型 ID プロパティ名を解析し、設定された型 ID マッピングを調べます。これは別の戦略でオーバーライドできます。メッセージの発信元に基づいたヒューリスティックを実行します。
message
- 型 ID プロパティを取得する JMS メッセージ JMSExceptionEE
- JMS メソッドによってスローされた場合 setTypeIdOnMessage(Object, javax.jms.Message)
, setTypeIdPropertyName(String)
, setTypeIdMappings(java.util.Map)