0

Mule 3.3.1 コミュニティ版。

次の一般的なタイプのプロセスを実行できるようにする単純な構成パターンが Mule にないかどうかを知りたいです。インバウンド エンドポイントからメッセージを受信したい。次に、ルート決定サービスなどの他のエンドポイントを呼び出し、その発信呼び出しの結果に基づいて、元のメッセージを変更せずに 2 番目の発信エンドポイントに送信します。

ルート サービスを呼び出すと、元のメッセージが変更されます。ワイヤータップのような構造を使用すると、シーケンスの問題が発生するようです。すべてのヘッダーとペイロードをコピーすることでそれを行うことができますが、必要になるたびにコーディングするのは面倒で、読むのも面倒です。メッセージに結果変数を設定するカスタム トランスフォーマーを作成するだけで、非常に簡単に実行できます。

しかし、これに対する単純な「純粋な Mule フロー」ソリューションはありますか? すべてのインバウンドのものを手動でアウトバウンドにコピーする必要がない、http-proxy パターン構造の理論的根拠にいくぶん類似しているようです。

4

1 に答える 1

2

私の理解では、mule の既存のプロセッサーとトランスフォーマーを使用して実現できます。

inbound-endpoint からの入力を読み取った後

ステップ 1: 以下のリンクで説明されているように、Mule Messag Enricher を使用します。このようにして、アウトバウンドへの呼び出しを行い、アウトバウンドからのリターンをフローまたはセッション変数に設定して、ペイロードを妨げないようにすることができます。

Mule メッセージ エンリッチャー

ステップ 2: 次に、エンリッチャーに設定されているフロー/セッション変数を使用して、2 番目のアウトバウンドへの呼び出しを行うことができます。

シナリオの流れを抽象化するとこんな感じ。

<flow >
    <inbound-endpoint>       

     <enricher target="#[variable:myTempFlowVar]">
        <outbound call >
     </enricher>
    <choice>
        <when expression="#[flowVar['myTempFlowVar'] == 'Test']" >
            <outbound call 2>
        </when>
        <otherwise>
            <something else>
        </otherwise>
    </choice>
</flow>

お役に立てれば。

于 2013-07-01T15:29:18.873 に答える