私は春の統合に慣れていないので、用語を誤用する可能性があります。SOAP Web サービス要求をリッスンする ws:inbound-gateway があります。
<int-ws:inbound-gateway id="myInGW"
request-channel="headersMapPopulationChannel"
reply-channel="ws-response-channel"
marshaller="marshaller"
unmarshaller="marshaller"/>
着信要求を headersMapPopulationChannel に送信し、メッセージをアダプター (JAXB クラスからドメインに変換するため) に送信し、スプリッターはそれを検証、ロギング、永続化に分割します。永続化した後、私はビジネス関連のものをリクエストで実行しています。例外が発生した場合に何をすべきかを管理できるように、これらすべてに例外制御ポイントを設定したいと考えています。わざとビジネスクラスにthrow exception文を入れています。例外がスローされますが、私のチャネルは例外を取得していないようです。構成:
<int-ws:inbound-gateway id="myInGW"
request-channel="headersMapPopulationChannel"
reply-channel="ws-response-channel"
error-channel="ws-error-channel"
marshaller="marshaller"
unmarshaller="marshaller"/>
<int:channel id="ws-error-channel"/>
<int:service-activator input-channel="ws-error-channel"
expression="@exceptionHandlerService.handleThrowable(payload)"/>
<bean id="exceptionHandlerService" class="pack.integration.service.ExceptionHandlerService"/>
また、最も外側のチャネルでの例外の制御が正しいかどうかもわかりません。メッセージを転送する場所で例外をリッスンする必要がありますか?