2016-06-18 3 views
2

MuleのCXF受信エンドポイントを使用してSOAPサービスを公開したMuleフローがあります。私はvalidationEnabled="true"wsdlLocation="path-to\my\wsdl"を設定しました。 CXFインバウンドエンドポイントのこの構成では、スキーマ検証エラーがある場合に備えて、着信SOAP要求を検証し、SOAP障害をスローすることができます。ここまでは順調ですね。Mule CXF SOAPサービス - XSDに対して検証し、SOAP応答の代わりにカスタム応答を送信します。

ここで、スキーマ検証エラーの場合にSOAP Fault応答をカスタマイズしたいと思います。

私の代わりに私がレスポンスボディに

<errorCode>123</errorCode> 
<errorDescription>some error description</errorDescription> 

を以下のようなものを送りたい、すべてでSOAPフォルトを送信したくないいずれかが、私はこれを達成する方法を教えていただけますか?

答えて

2

あなたはSOAPのWebサービスを公開し、スキーマに対して、着信SOAPメッセージの検証を持っており、カスタムメッセージを入れたいしている場合は、最善の方法の一つは、例えば、次のコードをmulexml:schema-validation-filter

を使用することです: -

<mulexml:schema-validation-filter name="Schema_Validation" schemaLocations="yourSchema.xsd" returnResult="true" doc:name="Schema Validation" /> 

<flow name="ServiceFlow" > 
    <http:listener config-ref="HTTP_Listener_Configuration" path="mainData" doc:name="HTTP Connector"/> 
     <message-filter onUnaccepted="ValidationFailFlow" doc:name="filter to validate xml against xsd" throwOnUnaccepted="true" > 
     <filter ref="Schema_Validation"/> 
    </message-filter> 
    <cxf:jaxws-service serviceClass="com.test.services.schema.maindata.v1.MainData" validationEnabled="true" doc:name="SOAP"/> 
    <component class="com.test.services.schema.maindata.v1.Impl.MainDataImpl" doc:name="JavaMain_ServiceImpl"/> 
    </flow> 

とカスタムメッセージ

<errorCode>123</errorCode> 
<errorDescription>some error description</errorDescription> 

作成するために、サブ・フローを作成: -

<sub-flow name="ValidationFailFlow" > 
     <logger message="SOAP Request is not valid!!" level="INFO" doc:name="Logger"/> 
     <set-payload value="&lt;errorCode&gt;123&lt;/errorCode&gt;&lt;errorDescription&gt;Soap Validation fail!!!/errorDescription&gt;" doc:name="Set Payload" mimeType="application/xml"/> 
</sub-flow> 

検証は、それはあなたのサブフローへのルート意志とカスタムメッセージ ノートを表示し失敗しているのであれば、今、あなたは、設定されたペイロードまたはJavaクラスまたはXSLTか何かを使ってカスタムメッセージを作成することができます:)
を望みますmulexml:schema-validation-filterの詳細については、次を参照してください。 - https://docs.mulesoft.com/mule-user-guide/v/3.7/schema-validation-filter

関連する問題