2016-09-04 8 views
0

私はMule CE 3.8を使用しています。JSONペイロードの値に応じてメッセージをルーティングする必要があります。 JSON2ObjectListとコレクションスプリッタを介して実行されるRESTエンドポイントからJSONのリストを取得します。juleペイロードに応じてミュール - 経路

<http:request ... /> 
    <json:json-to-object-transformer returnClass="java.util.List" encoding="UTF-8" doc:name="JSON2ObjectList"/> 
    <collection-splitter doc:name="Collection Splitter"/> 
    <custom-transformer ../> 

は今CustomTransformerとすべてのマッピングの前に私は、ペイロードProduct.Warehouse値に応じてメッセージを分離選択ルータを持っている必要があります。私は、Warehouseフィールドの値にフロー変数を設定できるJavaコンポーネントを考えていましたが、おそらくこれを解決する簡単な方法がありますか? 私はMELと発現トランスを調べましたが、それを理解できませんでした。

よろしく

答えて

2

あなたはCustomTransformer前に選択肢のルータを入れて、payload.warehouseにチェックを入れることができます。コレクションスプリッタがProductオブジェクトを生成します。そのプロパティに直接アクセスすることができます。

<json:json-to-object-transformer returnClass="java.util.List" encoding="UTF-8" doc:name="JSON2ObjectList"/> 
    <collection-splitter doc:name="Collection Splitter"/> 
    <choice doc:name="Choice"> 
     <when expression="#[payload.Warehouse == &quot;a&quot;]"> 
      <custom-transformer ../> 
     </when> 
     <when expression="#[payload.Warehouse == &quot;b&quot;]"> 
      <custom-transformer ../> 
     </when> 
    </choice> 

よう

何かが、この情報がお役に立てば幸いです。

+0

答えをくれてありがとう、私はこれがMEL式を得たらトリックを行うだろうと思います(今ではペイロードがCollectionスプリッタからのjava.util.LinkedHashMapであることを私に伝えるjava Nullpointerの例外を与えています) – elwis

関連する問題