あなたは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="<errorCode>123</errorCode><errorDescription>Soap Validation fail!!!/errorDescription>" 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