@DeprecatedSE public class JmsInvokerServiceExporter extends RemoteInvocationBasedExporter implements SessionAwareMessageListener<MessageEE>, InitializingBean
このクラスはアクティブな JMS セッションにアクセスする必要があるため、Spring の SessionAwareMessageListener インターフェースを実装することに注意してください。このクラスは、SessionAwareMessageListener インターフェース(Spring の DefaultMessageListenerContainer など)をサポートするメッセージリスナーコンテナーでのみ使用できます。
この JMS 呼び出しメカニズムが着想を得た元のプロトタイプを作成した James Strachan に感謝します。
JmsInvokerClientInterceptor, JmsInvokerProxyFactoryBeanlogger| コンストラクターと説明 |
|---|
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, setRemoteInvocationExecutorcheckService, checkServiceInterface, getExporterName, getProxyForService, getService, getServiceInterface, setInterceptors, setRegisterTraceInterceptor, setService, setServiceInterfacegetBeanClassLoader, overrideThreadContextClassLoader, resetThreadContextClassLoader, setBeanClassLoadercloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEpublic void setMessageConverter(@Nullable MessageConverter messageConverter)
RemoteInvocation オブジェクトに、RemoteInvocationResult オブジェクトをレスポンスメッセージに変換するために使用する MessageConverter を指定します。 デフォルトは SimpleMessageConverter で、各呼び出し / 呼び出し結果オブジェクトに標準の JMS ObjectMessageEE を使用します。
カスタム実装は通常、Serializable を特別な種類のメッセージに適合させるか、RemoteInvocation(Result)を特定の種類のメッセージに変換するように特別に調整する場合があります。
public void setIgnoreInvalidRequests(boolean ignoreInvalidRequests)
このフラグを "false" に切り替えて、例外をリスナーコンテナーにスローします。これは通常、メッセージの再配信につながりますが、通常は望ましくありません。メッセージの内容は同じです(つまり、無効のままです)。
public void afterPropertiesSet()
InitializingBeanBeanFactoryAware、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)