4

私は Mule にかなり慣れていないので、これはばかげた質問かもしれません。Mule からリモート axis2 SOAP サービスを呼び出したいので、SOAP コンポーネントを使用します。私が苦労しているのは、ペイロード人口の正しいパターンです。これは非常に単純なペイロードの例です

  <oper:CreateTask xmlns:oper="http://api.abc.com/workflow/operationtypes">
     <workType>
        <Name>Reminder Task</Name>
     </workType>
     <activitySubject>
        <GenericSubject>Richard Fanning</GenericSubject>
     </activitySubject>
     <description>This is a Mule generated Reminder Task</description>
  </oper:CreateTask>

ペイロードは現在 set-payload トランスフォーマーを介して入力されており、以下に示すように XML がフローに埋め込まれています。

<flow name="createWorkflowTask" doc:name="createWorkflowTask">
    <set-payload value="&lt;oper:CreateTask xmlns:oper=&quot;http://api.abc.com/workflow/operationtypes&quot;&gt;&lt;workType&gt;&lt;Name&gt;Reminder Task&lt;/Name&gt;&lt;/workType&gt;&lt;activitySubject&gt;&lt;GenericSubject&gt;Richard Fanning&lt;/GenericSubject&gt;&lt;/activitySubject&gt;&lt;description&gt;This is a Mule generated Reminder Task&lt;/description&gt;&lt;/oper:CreateTask&gt;" doc:name="Set Payload"/>
    <cxf:proxy-client doc:name="SOAP" enableMuleSoapHeaders="true" payload="body"/>
    <http:outbound-endpoint exchange-pattern="one-way" method="POST" address="http://localhost:6081/workflow/services/ActivityServices" doc:name="HTTP"/>
</flow>

私の質問は、このペイロードを設定する最も適切な方法です。私の考えは

  1. PAYLOAD が大きい場合は、この XML を Mule プロジェクトのファイルに保持し、この質問で概説されているように読み取る方がよいでしょう。
  2. Request のクライアント スタブ クラスを生成したくないのですが、CXF を使用してサービス クラスを定義する必要があるかもしれません。これにはどのような利点がありますか?

ペイロードを設定する他の推奨方法はありますか。私の使用例では、この (サブ) フローはルーターから呼び出されるため、メッセージを変更する関連情報は渡されません。

余談ですが、ワークタイプ名「リマインダー タスク」については、mule-app.properties に抽出し、XSLT を使用して最終リクエストに入力する必要がありますか?

ありがとう

リッチ

4

1 に答える 1