クラス 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
- 関連事項:
EndpointMappingEndpointAdapterEndpointExceptionResolverDispatcherServlet
フィールド概要
フィールド修飾子と型フィールド説明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 voiddispatch(MessageContext messageContext) 構成に従って、指定された MessageContext でリクエストをディスパッチします。protected EndpointInvocationChaingetEndpoint(MessageContext messageContext) このリクエストのエンドポイントを返します。protected EndpointAdaptergetEndpointAdapter(ObjectSE endpoint) 指定されたエンドポイントのEndpointAdapterを返します。このMessageDispatcherで使用するEndpointAdapterを返します。このMessageDispatcherで使用するEndpointExceptionResolverを返します。このMessageDispatcherで使用するEndpointMappingを返します。protected booleanhandleRequest(EndpointInvocationChain mappedEndpoint, MessageContext messageContext) 指定された呼び出しチェーンおよびメッセージコンテキストの前処理のコールバック。protected voidprocessEndpointException(MessageContext messageContext, ObjectSE endpoint, ExceptionSE ex) 登録されたEndpointExceptionResolversを介してエラーSOAPMessageレスポンスを判別します。voidreceive(MessageContext messageContext) 指定されたメッセージコンテキストを受信します。voidsetApplicationContext(org.springframework.context.ApplicationContext applicationContext) final voidsetBeanName(StringSE beanName) voidsetEndpointAdapters(ListSE<EndpointAdapter> endpointAdapters) このMessageDispatcherで使用するEndpointAdapterを設定します。voidsetEndpointExceptionResolvers(ListSE<EndpointExceptionResolver> endpointExceptionResolvers) このMessageDispatcherで使用するEndpointExceptionResolverを設定します。voidsetEndpointMappings(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- マップされたEndpointInvocationChainmessageContext- メッセージコンテキスト- 戻り値:
- 処理を続行する必要がある場合は
true。それ以外の場合はfalse
processEndpointException
protected void processEndpointException(MessageContext messageContext, ObjectSE endpoint, ExceptionSE ex) throws ExceptionSE 登録されたEndpointExceptionResolversを介してエラーSOAPMessageレスポンスを判別します。ほとんどの場合、レスポンスにはSOAPFaultが含まれています。適切なリゾルバーが見つからなかった場合、例外が再スローされます。- パラメーター:
messageContext- 現在の SOAPMessage リクエストendpoint- 実行されたエンドポイント、または例外時に何も選択されなかった場合は nullex- ハンドラーの実行中にスローされた例外- 例外:
ExceptionSE- 適切なリゾルバーが見つからない場合