Mule 3.3.1 CE の Web サービスについて質問があります。3 つの操作を公開する Web サービスと、これらの操作を実装するクラスがあります。これらの操作は、結果 (正) または例外 (AuthException、ValidateExeception など) を返すことができます。Java 例外を発生させたときに SOAP Mule コンポーネントのおかげで、フレームワークは SOAP Fault で Java 例外をマーシャリングできますが、SOAP Fault をクライアントに返し、Mule の例外戦略で例外を処理したい場合 (つまり、電子メールを送信するなど)、Mule の動作は期待できません。つまり、たとえば AuthException を発生させると、フロー制御が定義された例外戦略に渡され、クライアントに SOAP エラー (AuthException) を返すことができなくなります。
問題は、SOAP 応答を送り返し、例外戦略を処理するにはどうすればよいかということです。
以下に示すのは、Logger コンポーネントを使用して単純に例外戦略を実装したミュール xml ファイルのスニペットです。
<flow name="esb_consignmentFlow1" doc:name="esb_consignmentFlow1">
<http:inbound-endpoint exchange-pattern="request-response" host="${conn.host}" port="8081" doc:name="HTTP" path="sgb/consignment" />
<cxf:jaxws-service doc:name="Process SOAP Request" serviceClass="com.suzuki.sales.webservice.ProcessTriggerPortType"/>
<component class="it.aizoon.suzuki.service.implementation.TriggerConsignmentOperationsImplementation" doc:name="triggerConsignmentOperationsImpl"/>
<catch-exception-strategy doc:name="Catch Exception Strategy">
<flow-ref name="ErrorHandling" doc:name="Flow Reference"/>
</catch-exception-strategy>
</flow>
<flow name="ErrorHandling" doc:name="ErrorHandling" >
<logger level="INFO" doc:name="Logger"/>
</flow>
Processing Strategy について読んだことがありますが、それが正しい方法かどうかわかりません。ご助力ありがとうございます。