@DeprecatedSE public class JmsInvokerServiceExporter extends RemoteInvocationBasedExporter implements SessionAwareMessageListener<MessageEE>, InitializingBean
このクラスはアクティブな JMS セッションにアクセスする必要があるため、Spring の SessionAwareMessageListener
インターフェースを実装することに注意してください。このクラスは、SessionAwareMessageListener インターフェース(Spring の DefaultMessageListenerContainer
など)をサポートするメッセージリスナーコンテナーでのみ使用できます。
この JMS 呼び出しメカニズムが着想を得た元のプロトタイプを作成した James Strachan に感謝します。
JmsInvokerClientInterceptor
, JmsInvokerProxyFactoryBean
logger
コンストラクターと説明 |
---|
JmsInvokerServiceExporter() 使用すべきではありません。 |
修飾子と型 | メソッドと説明 |
---|---|
void | afterPropertiesSet() 使用すべきではありません。 |
protected MessageEE | createResponseMessage(MessageEE request, SessionEE session, RemoteInvocationResult result) 使用すべきではありません。 呼び出し結果のレスポンスメッセージを作成します。 |
protected RemoteInvocation | onInvalidRequest(MessageEE requestMessage) 使用すべきではありません。 無効なリクエストメッセージを検出したときに readRemoteInvocation(javax.jms.Message) によって呼び出されるコールバック。 |
void | onMessage(MessageEE requestMessage, SessionEE session) 使用すべきではありません。 受信した JMS メッセージを処理するためのコールバック。 |
protected RemoteInvocation | readRemoteInvocation(MessageEE requestMessage) 使用すべきではありません。 指定された JMS メッセージから RemoteInvocation を読み取ります。 |
void | setIgnoreInvalidRequests(boolean ignoreInvalidRequests) 使用すべきではありません。 無効な形式のメッセージを破棄するかどうかを設定します。 |
void | setMessageConverter(MessageConverter messageConverter) 使用すべきではありません。 リクエストメッセージを RemoteInvocation オブジェクトに、RemoteInvocationResult オブジェクトをレスポンスメッセージに変換するために使用する MessageConverter を指定します。 |
protected void | writeRemoteInvocationResult(MessageEE requestMessage, SessionEE session, RemoteInvocationResult result) 使用すべきではありません。 指定された RemoteInvocationResult を JMS メッセージとして呼び出し元に送信します。 |
getRemoteInvocationExecutor, invoke, invokeAndCreateResult, setRemoteInvocationExecutor
checkService, checkServiceInterface, getExporterName, getProxyForService, getService, getServiceInterface, setInterceptors, setRegisterTraceInterceptor, setService, setServiceInterface
getBeanClassLoader, overrideThreadContextClassLoader, resetThreadContextClassLoader, setBeanClassLoader
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public void setMessageConverter(@Nullable MessageConverter messageConverter)
RemoteInvocation
オブジェクトに、RemoteInvocationResult
オブジェクトをレスポンスメッセージに変換するために使用する MessageConverter を指定します。 デフォルトは SimpleMessageConverter
で、各呼び出し / 呼び出し結果オブジェクトに標準の JMS ObjectMessage
EE を使用します。
カスタム実装は通常、Serializable を特別な種類のメッセージに適合させるか、RemoteInvocation(Result)を特定の種類のメッセージに変換するように特別に調整する場合があります。
public void setIgnoreInvalidRequests(boolean ignoreInvalidRequests)
このフラグを "false" に切り替えて、例外をリスナーコンテナーにスローします。これは通常、メッセージの再配信につながりますが、通常は望ましくありません。メッセージの内容は同じです(つまり、無効のままです)。
public void afterPropertiesSet()
InitializingBean
BeanFactoryAware
、ApplicationContextAware
などを満たした後、包含 BeanFactory
によって呼び出されます。このメソッドにより、Bean インスタンスは、すべての Bean プロパティが設定されたときに、その全体的な構成の検証と最終的な初期化を実行できます。
InitializingBean
の afterPropertiesSet
public void onMessage(MessageEE requestMessage, SessionEE session) throws JMSExceptionEE
SessionAwareMessageListener
実装者は、指定されたメッセージを処理し、通常、指定されたセッションを介して応答メッセージを送信します。
SessionAwareMessageListener<MessageEE>
の onMessage
requestMessage
- 受信した JMS メッセージ (非 null
)session
- 基礎となる JMS セッション (非 null
)JMSExceptionEE
- JMS メソッドによってスローされた場合 @Nullable protected RemoteInvocation readRemoteInvocation(MessageEE requestMessage) throws JMSExceptionEE
requestMessage
- 現在のリクエストメッセージ null
)JMSExceptionEE
- メッセージアクセスが失敗した場合 protected void writeRemoteInvocationResult(MessageEE requestMessage, SessionEE session, RemoteInvocationResult result) throws JMSExceptionEE
requestMessage
- 現在のリクエストメッセージ session
- 使用する JMS セッション result
- RemoteInvocationResult オブジェクト JMSExceptionEE
- メッセージを送信しようとしてスローされた場合 protected MessageEE createResponseMessage(MessageEE request, SessionEE session, RemoteInvocationResult result) throws JMSExceptionEE
デフォルトの実装では、与えられた RemoteInvocationResult オブジェクトに対して JMS ObjectMessage を作成します。それはレスポンスの相関 ID を、もしあればリクエストメッセージの相関 ID に設定し、そうでなければリクエストメッセージの ID に設定します。
request
- 元のリクエストメッセージ session
- 使用する JMS セッション result
- 呼び出し結果 JMSExceptionEE
- メッセージの作成に失敗した場合 @Nullable protected RemoteInvocation onInvalidRequest(MessageEE requestMessage) throws JMSExceptionEE
readRemoteInvocation(javax.jms.Message)
によって呼び出されるコールバック。デフォルトの実装では、無効なメッセージを破棄するか、デフォルトで "true" (つまり、無効なメッセージを破棄する) に設定されている "ignoreInvalidRequests" フラグに従って MessageFormatException をスローします。
requestMessage
- 無効なリクエストメッセージ null
)JMSExceptionEE
- 例外につながるはずの無効なリクエストの場合 (それを無視する代わりに)readRemoteInvocation(javax.jms.Message)
, setIgnoreInvalidRequests(boolean)