クラス AbstractAdaptableMessageListener
- 実装されたすべてのインターフェース:
MessageListenerEE
,SessionAwareMessageListener<MessageEE>
Message
EE のペイロードを抽出するために必要なインフラストラクチャを提供する抽象 JMS MessageListener
EE アダプター。- 導入:
- 4.1
- 作成者:
- Juergen Hoeller, Stephane Nicoll
- 関連事項:
フィールドサマリー
フィールドコンストラクターのサマリー
コンストラクターメソッドのサマリー
修飾子と型メソッド説明protected MessageEE
buildMessage
(SessionEE session, ObjectSE result) 指定された結果オブジェクトに基づいて、レスポンスとして送信される JMS メッセージを作成します。protected ObjectSE
extractMessage
(MessageEE message) 指定された JMS メッセージからメッセージ本文を抽出します。protected DestinationResolver
このアダプターの DestinationResolver を返します。protected MessageConverter
受信 JMS メッセージをリスナーメソッドの引数に変換し、リスナーメソッドから返されたオブジェクトを JMS メッセージに変換するコンバーターを返します。protected final MessagingMessageConverter
Message
を変換できるようにして、このリスナーのMessagingMessageConverter
を返します。protected DestinationEE
getResponseDestination
(MessageEE request, MessageEE response, SessionEE session) 指定されたメッセージのレスポンス宛先を決定します。protected QosSettings
レスポンスを送信するときに使用するQosSettings
を返します。デフォルトを使用する必要がある場合はnull
を返します。protected void
リスナーの実行中に発生した特定の例外を処理します。protected void
handleResult
(ObjectSE result, MessageEE request, SessionEE session) リスナメソッドから返された結果オブジェクトを処理し、レスポンスメッセージを送り返します。void
標準 JMSMessageListener
EE エントリポイント。abstract void
受信した JMS メッセージを処理するためのコールバック。protected void
postProcessProducer
(MessageProducerEE producer, MessageEE response) 指定されたメッセージプロデューサーを後処理してから、それを使用してレスポンスを送信します。protected void
postProcessResponse
(MessageEE request, MessageEE response) 指定されたレスポンスメッセージを送信する前に後処理します。protected ObjectSE
preProcessResponse
(ObjectSE result) Message
EE に変換される前に、指定された結果を前処理します。protected DestinationEE
宛先名の場合、このアクセサーのDestinationResolver
を使用して、デフォルトのレスポンス宛先を JMSDestination
EE に解決します。protected void
sendResponse
(SessionEE session, DestinationEE destination, MessageEE response) 指定されたレスポンスメッセージを指定された宛先に送信します。void
setDefaultResponseDestination
(DestinationEE destination) レスポンスメッセージを送信するデフォルトの宛先を設定します。void
setDefaultResponseQueueName
(StringSE destinationName) レスポンスメッセージを送信するデフォルトのレスポンスキューの名前を設定します。void
setDefaultResponseTopicName
(StringSE destinationName) レスポンスメッセージを送信するデフォルトのレスポンストピックの名前を設定します。void
setDestinationResolver
(DestinationResolver destinationResolver) このアダプターのレスポンス宛先名を解決するために使用する DestinationResolver を設定します。void
setHeaderMapper
(JmsHeaderMapper headerMapper) JmsHeaderMapper
実装を設定して、標準 JMS ヘッダーのマッピングに使用します。void
setMessageConverter
(MessageConverter messageConverter) 受信 JMS メッセージをリスナーメソッドの引数に変換し、リスナーメソッドから返されたオブジェクトを JMS メッセージに戻すコンバーターを設定します。void
setResponseQosSettings
(QosSettings responseQosSettings) レスポンスを送信するときに使用するQosSettings
を設定します。
フィールドの詳細
logger
サブクラスで利用可能なロガー。
コンストラクターの詳細
AbstractAdaptableMessageListener
public AbstractAdaptableMessageListener()
メソッドの詳細
setDefaultResponseDestination
レスポンスメッセージを送信するデフォルトの宛先を設定します。これは、"JMSReplyTo" フィールドを含まないリクエストメッセージの場合に適用されます。レスポンス宛先は、結果オブジェクトを返すリスナーメソッドにのみ関連します。結果オブジェクトはレスポンスメッセージにラップされ、レスポンス宛先に送信されます。
または、DestinationResolver を介して動的に解決される "defaultResponseQueueName" または "defaultResponseTopicName" を指定します。
- 関連事項:
setDefaultResponseQueueName(String)
setDefaultResponseTopicName(String)
getResponseDestination(jakarta.jms.Message, jakarta.jms.Message, jakarta.jms.Session, java.lang.Object)
setDefaultResponseQueueName
レスポンスメッセージを送信するデフォルトのレスポンスキューの名前を設定します。これは、"JMSReplyTo" フィールドを含まないリクエストメッセージの場合に適用されます。または、JMS Destination オブジェクトを "defaultResponseDestination" として指定します。
setDefaultResponseTopicName
レスポンスメッセージを送信するデフォルトのレスポンストピックの名前を設定します。これは、"JMSReplyTo" フィールドを含まないリクエストメッセージの場合に適用されます。または、JMS Destination オブジェクトを "defaultResponseDestination" として指定します。
setDestinationResolver
このアダプターのレスポンス宛先名を解決するために使用する DestinationResolver を設定します。デフォルトのリゾルバーは DynamicDestinationResolver です。宛先名を JNDI ロケーションとして解決するための JndiDestinationResolver を指定します。
getDestinationResolver
このアダプターの DestinationResolver を返します。setMessageConverter
受信 JMS メッセージをリスナーメソッドの引数に変換し、リスナーメソッドから返されたオブジェクトを JMS メッセージに戻すコンバーターを設定します。デフォルトのコンバーターは
SimpleMessageConverter
で、BytesMessages
EE、TextMessages
EE、ObjectMessages
EE を処理できます。getMessageConverter
受信 JMS メッセージをリスナーメソッドの引数に変換し、リスナーメソッドから返されたオブジェクトを JMS メッセージに変換するコンバーターを返します。setHeaderMapper
JmsHeaderMapper
実装を設定して、標準 JMS ヘッダーのマッピングに使用します。デフォルトでは、SimpleJmsHeaderMapper
が使用されます。getMessagingMessageConverter
Message
を変換できるようにして、このリスナーのMessagingMessageConverter
を返します。setResponseQosSettings
レスポンスを送信するときに使用するQosSettings
を設定します。null
に設定して、ブローカーのデフォルトを使用する必要があることを示すことができます。- パラメーター:
responseQosSettings
- レスポンスを送信するときに使用する QoS 設定、またはデフォルト値を使用するnull
。- 導入:
- 5.0
getResponseQosSettings
レスポンスを送信するときに使用するQosSettings
を返します。デフォルトを使用する必要がある場合はnull
を返します。- 導入:
- 5.0
onMessage
標準 JMSMessageListener
EE エントリポイント。メッセージ引数を適切に変換して、メッセージをターゲットリスナメソッドに委譲します。例外の場合、
handleListenerException(Throwable)
メソッドが呼び出されます。注意 : リスナーメソッドから返された結果オブジェクトに基づくレスポンスメッセージの送信はサポートしていません。結果オブジェクトの処理にも
SessionAwareMessageListener
エントリポイントを使用します(通常は Spring メッセージリスナーコンテナーを使用)。- 次で指定:
- インターフェース
MessageListenerEE
のonMessageEE
- パラメーター:
message
- 受信 JMS メッセージ- 関連事項:
onMessage
public abstract void onMessage(MessageEE message, @Nullable SessionEE session) throws JMSExceptionEE インターフェースからコピーされた説明:SessionAwareMessageListener
受信した JMS メッセージを処理するためのコールバック。実装者は、指定されたメッセージを処理し、通常、指定されたセッションを介して応答メッセージを送信します。
- 次で指定:
- インターフェース
SessionAwareMessageListener<MessageEE>
のonMessage
- パラメーター:
message
- 受信した JMS メッセージ (非null
)session
- 基礎となる JMS セッション (非null
)- 例外:
JMSExceptionEE
- JMS メソッドによってスローされた場合
handleListenerException
リスナーの実行中に発生した特定の例外を処理します。デフォルトの実装では、エラーレベルで例外が記録されます。このメソッドは、標準 JMS
MessageListener
EE として使用される場合にのみ適用されます。SpringSessionAwareMessageListener
メカニズムの場合、例外は代わりに呼び出し側によって処理されます。- パラメーター:
ex
- 処理する例外- 関連事項:
extractMessage
指定された JMS メッセージからメッセージ本文を抽出します。- パラメーター:
message
- JMSMessage
- 戻り値:
- 引数としてリスナーメソッドに渡されるメッセージの内容
- 例外:
MessageConversionException
- メッセージを抽出できなかった場合
handleResult
リスナメソッドから返された結果オブジェクトを処理し、レスポンスメッセージを送り返します。- パラメーター:
result
- 処理する結果オブジェクト (非null
)request
- 元のリクエストメッセージsession
- 操作する JMS セッション (null
の場合があります)- 例外:
ReplyFailureException
- レスポンスメッセージを送信できなかった場合- 関連事項:
buildMessage(jakarta.jms.Session, java.lang.Object)
postProcessResponse(jakarta.jms.Message, jakarta.jms.Message)
getResponseDestination(jakarta.jms.Message, jakarta.jms.Message, jakarta.jms.Session, java.lang.Object)
sendResponse(jakarta.jms.Session, jakarta.jms.Destination, jakarta.jms.Message)
buildMessage
指定された結果オブジェクトに基づいて、レスポンスとして送信される JMS メッセージを作成します。- パラメーター:
session
- 操作する JMS セッションresult
- リスナーメソッドから返されるメッセージのコンテンツ- 戻り値:
- JMS
Message
(非null
) - 例外:
JMSExceptionEE
- JMS API メソッドによってスローされた場合- 関連事項:
preProcessResponse
Message
EE に変換される前に、指定された結果を前処理します。- パラメーター:
result
- 呼び出しの結果- 戻り値:
- 処理するペイロードレスポンス、
result
引数またはその他のオブジェクト(結果のラップなど)。 - 導入:
- 4.3
postProcessResponse
指定されたレスポンスメッセージを送信する前に後処理します。デフォルトの実装では、レスポンスの相関 ID がリクエストメッセージの相関 ID (存在する場合) に設定されます。それ以外の場合はリクエストメッセージ ID。
- パラメーター:
request
- 元の受信 JMS メッセージresponse
- 送信される送信 JMS メッセージ- 例外:
JMSExceptionEE
- JMS API メソッドによってスローされた場合- 関連事項:
getResponseDestination
protected DestinationEE getResponseDestination(MessageEE request, MessageEE response, SessionEE session) throws JMSExceptionEE 指定されたメッセージのレスポンス宛先を決定します。デフォルトの実装では、最初に、提供されたリクエストの JMS Reply-To
Destination
EE をチェックします。null
でない場合は返されます。null
の場合、構成されたdefault response destination
が返されます。これもnull
の場合、InvalidDestinationException
EE がスローされます。- パラメーター:
request
- 元の受信 JMS メッセージresponse
- 送信される送信 JMS メッセージsession
- 操作する JMS セッション- 戻り値:
- レスポンス先 (非
null
) - 例外:
JMSExceptionEE
- JMS API メソッドによってスローされた場合InvalidDestinationExceptionEE
-Destination
EE を決定できない場合- 関連事項:
resolveDefaultResponseDestination
@Nullable protected DestinationEE resolveDefaultResponseDestination(SessionEE session) throws JMSExceptionEE 宛先名の場合、このアクセサーのDestinationResolver
を使用して、デフォルトのレスポンス宛先を JMSDestination
EE に解決します。sendResponse
protected void sendResponse(SessionEE session, DestinationEE destination, MessageEE response) throws JMSExceptionEE 指定されたレスポンスメッセージを指定された宛先に送信します。- パラメーター:
response
- 送信する JMS メッセージdestination
- 送信先の JMS 宛先session
- 操作する JMS セッション- 例外:
JMSExceptionEE
- JMS API メソッドによってスローされた場合- 関連事項:
postProcessProducer
protected void postProcessProducer(MessageProducerEE producer, MessageEE response) throws JMSExceptionEE 指定されたメッセージプロデューサーを後処理してから、それを使用してレスポンスを送信します。デフォルトの実装は空です。
- パラメーター:
producer
- メッセージの送信に使用される JMS メッセージプロデューサーresponse
- 送信される送信 JMS メッセージ- 例外:
JMSExceptionEE
- JMS API メソッドによってスローされた場合