SOAP エラーの防止方法

この手順では、生成した SOAP エラーを解決します。Transform Message コンポーネントをフローに追加し、要求に応答するために DataWeave でメッセージを指定して、操作を効果的に実装します。DataWeave コードでは、要求への応答の先頭の faultcode を回避するために適切な名前空間を使用します。

WSDL で定義されたエンドポイントに達すると、Transform Message コンポーネントはプロセス側で機能します。このアクションは Mule アプリケーションのメインフローの実行をトリガしてから、バックエンドフローをコールします。

  1. Studio で、OrderTshirt:\soapkit-config フローの [Transform Message] コンポーネントをクリックします。

    [Transform Message] プロパティウィンドウに、生成された DataWeave コードが表示されます。

  2. DataWeave コードを次のように変更します。

    %dw 2.0
    output application/java
    ns ns0 http://mulesoft.org/tshirt-service
    ---
    {
        body: {
            ns0#OrderTshirtResponse: {
                orderId: "I got a request from " ++ (payload.body.ns0#OrderTshirt.name default "")
            }
        } write "application/xml"
    }
  3. プロジェクトを保存して再実行します。

  4. SoapUI クライアントで、SOAP エラーを生成する要求を再送信します。

    出力は有効な応答に変更されます。

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <ns0:OrderTshirtResponse xmlns:ns0="http://mulesoft.org/tshirt-service">
         <orderId>I got a request from John</orderId>
      </ns0:OrderTshirtResponse>
   </soap:Body>
</soap:Envelope>

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub