クラス MessageDispatcher
java.lang.ObjectSE
org.springframework.ws.server.MessageDispatcher
- 実装されたすべてのインターフェース:
org.springframework.beans.factory.Aware
、org.springframework.beans.factory.BeanNameAware
、org.springframework.context.ApplicationContextAware
、WebServiceMessageReceiver
- 既知の直属サブクラス
SoapMessageDispatcher
public class MessageDispatcher
extends ObjectSE
implements WebServiceMessageReceiver, org.springframework.beans.factory.BeanNameAware, org.springframework.context.ApplicationContextAware
Spring-WS 内で使用する主要ディスパッチャー。登録されたエンドポイントに Web サービスメッセージをディスパッチします。
このディスパッチャーは、Spring MVC の DispatcherServlet
と非常によく似ています。対応するディスパッチャーと同様に、このディスパッチャーは非常に柔軟性があります。このクラスは SOAP に依存しません。一般的な SOAP Web サービスでは、SoapMessageDispatcher
サブクラスが使用されます。
- 標準またはアプリケーションの一部として提供される
EndpointMapping
実装を使用して、エンドポイントオブジェクトへのリクエストメッセージのルーティングを制御できます。エンドポイントマッピングは、endpointMappings
プロパティを使用して登録できます。 - 任意の
EndpointAdapter
を使用できます。; これにより、任意のエンドポイントインターフェースまたはフォームを使用できます。デフォルトは、MessageEndpoint
とPayloadEndpoint
の場合、それぞれMessageEndpointAdapter
とPayloadEndpointAdapter
、MessageMethodEndpointAdapter
とPayloadMethodEndpointAdapter
です。追加のエンドポイントアダプターは、endpointAdapters
プロパティを介して追加できます。 - その例外解決戦略は、
EndpointExceptionResolver
を介して指定できます。たとえば、特定の例外を SOAP 障害にマッピングします。デフォルトは none です。追加の例外リゾルバーは、endpointExceptionResolvers
プロパティを介して追加できます。
- 導入:
- 1.0.0
- 作成者:
- Arjen Poutsma
- 関連事項:
EndpointMapping
EndpointAdapter
EndpointExceptionResolver
DispatcherServlet
フィールドのサマリー
フィールド修飾子と型フィールド説明static final StringSE
リクエストにマップされたエンドポイントが見つからない場合に使用するログカテゴリ。protected static final org.apache.commons.logging.Log
リクエストに対してマップされたエンドポイントが見つからない場合に使用する追加のロガー。protected final org.apache.commons.logging.Log
サブクラスで利用可能なロガー。static final StringSE
メッセージトレースに使用するログカテゴリ。protected static final org.apache.commons.logging.Log
受信メッセージのトレースに使用する追加のロガー。protected static final org.apache.commons.logging.Log
送信メッセージのトレースに使用する追加のロガー。コンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明protected final void
dispatch
(MessageContext messageContext) 構成に従って、指定された MessageContext でリクエストをディスパッチします。protected EndpointInvocationChain
getEndpoint
(MessageContext messageContext) このリクエストのエンドポイントを返します。protected EndpointAdapter
getEndpointAdapter
(ObjectSE endpoint) 指定されたエンドポイントのEndpointAdapter
を返します。このMessageDispatcher
で使用するEndpointAdapter
を返します。このMessageDispatcher
で使用するEndpointExceptionResolver
を返します。このMessageDispatcher
で使用するEndpointMapping
を返します。protected boolean
handleRequest
(EndpointInvocationChain mappedEndpoint, MessageContext messageContext) 指定された呼び出しチェーンおよびメッセージコンテキストの前処理のコールバック。protected void
processEndpointException
(MessageContext messageContext, ObjectSE endpoint, ExceptionSE ex) 登録されたEndpointExceptionResolvers
を介してエラーSOAPMessage
レスポンスを判別します。void
receive
(MessageContext messageContext) 指定されたメッセージコンテキストを受信します。void
setApplicationContext
(org.springframework.context.ApplicationContext applicationContext) final void
setBeanName
(StringSE beanName) void
setEndpointAdapters
(ListSE<EndpointAdapter> endpointAdapters) このMessageDispatcher
で使用するEndpointAdapter
を設定します。void
setEndpointExceptionResolvers
(ListSE<EndpointExceptionResolver> endpointExceptionResolvers) このMessageDispatcher
で使用するEndpointExceptionResolver
を設定します。void
setEndpointMappings
(ListSE<EndpointMapping> endpointMappings) このMessageDispatcher
で使用するEndpointMapping
を設定します。
フィールドの詳細
logger
protected final org.apache.commons.logging.Log loggerサブクラスで利用可能なロガー。ENDPOINT_NOT_FOUND_LOG_CATEGORY
リクエストにマップされたエンドポイントが見つからない場合に使用するログカテゴリ。- 関連事項:
endpointNotFoundLogger
protected static final org.apache.commons.logging.Log endpointNotFoundLoggerリクエストに対してマップされたエンドポイントが見つからない場合に使用する追加のロガー。MESSAGE_TRACING_LOG_CATEGORY
メッセージトレースに使用するログカテゴリ。- 関連事項:
sentMessageTracingLogger
protected static final org.apache.commons.logging.Log sentMessageTracingLogger送信メッセージのトレースに使用する追加のロガー。receivedMessageTracingLogger
protected static final org.apache.commons.logging.Log receivedMessageTracingLogger受信メッセージのトレースに使用する追加のロガー。
コンストラクターの詳細
MessageDispatcher
public MessageDispatcher()MessageDispatcher
の新しいインスタンスを初期化します。
メソッドの詳細
getEndpointAdapters
このMessageDispatcher
で使用するEndpointAdapter
を返します。setEndpointAdapters
このMessageDispatcher
で使用するEndpointAdapter
を設定します。getEndpointExceptionResolvers
このMessageDispatcher
で使用するEndpointExceptionResolver
を返します。setEndpointExceptionResolvers
public void setEndpointExceptionResolvers(ListSE<EndpointExceptionResolver> endpointExceptionResolvers) このMessageDispatcher
で使用するEndpointExceptionResolver
を設定します。getEndpointMappings
このMessageDispatcher
で使用するEndpointMapping
を返します。setEndpointMappings
このMessageDispatcher
で使用するEndpointMapping
を設定します。setBeanName
- 次で指定:
- インターフェース
org.springframework.beans.factory.BeanNameAware
のsetBeanName
setApplicationContext
public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext) throws org.springframework.beans.BeansException - 次で指定:
- インターフェース
org.springframework.context.ApplicationContextAware
のsetApplicationContext
- 例外:
org.springframework.beans.BeansException
receive
インターフェースからコピーされた説明:WebServiceMessageReceiver
指定されたメッセージコンテキストを受信します。指定されたメッセージコンテキストを使用して、レスポンスを作成できます。- 次で指定:
- インターフェース
WebServiceMessageReceiver
のreceive
- パラメーター:
messageContext
- 受信するメッセージコンテキスト- 例外:
ExceptionSE
dispatch
構成に従って、指定された MessageContext でリクエストをディスパッチします。- パラメーター:
messageContext
- メッセージコンテキスト- 例外:
NoEndpointFoundException
- 受信メッセージのエンドポイントを解決できない場合にスローされますExceptionSE
getEndpoint
このリクエストのエンドポイントを返します。すべてのエンドポイントマッピングが順番に試行されます。- 戻り値:
EndpointInvocationChain
、またはエンドポイントが見つからなかった場合はnull
。- 例外:
ExceptionSE
getEndpointAdapter
指定されたエンドポイントのEndpointAdapter
を返します。- パラメーター:
endpoint
- アダプターを見つけるためのエンドポイント- 戻り値:
- アダプター
handleRequest
protected boolean handleRequest(EndpointInvocationChain mappedEndpoint, MessageContext messageContext) 指定された呼び出しチェーンおよびメッセージコンテキストの前処理のコールバック。インターセプターでhandleRequest
が呼び出される前に呼び出されます。デフォルトの実装は何もせず、
true
を返します。- パラメーター:
mappedEndpoint
- マップされたEndpointInvocationChain
messageContext
- メッセージコンテキスト- 戻り値:
- 処理を続行する必要がある場合は
true
。それ以外の場合はfalse
processEndpointException
protected void processEndpointException(MessageContext messageContext, ObjectSE endpoint, ExceptionSE ex) throws ExceptionSE 登録されたEndpointExceptionResolvers
を介してエラーSOAPMessage
レスポンスを判別します。ほとんどの場合、レスポンスにはSOAPFault
が含まれています。適切なリゾルバーが見つからなかった場合、例外が再スローされます。- パラメーター:
messageContext
- 現在の SOAPMessage リクエストendpoint
- 実行されたエンドポイント、または例外時に何も選択されなかった場合は nullex
- ハンドラーの実行中にスローされた例外- 例外:
ExceptionSE
- 適切なリゾルバーが見つからない場合