3

私のMule 3.3.0設定には、次のような条件式があります。

<when expression="#[places.contains(message.payload)]">

. . .

</when>

placesとして宣言されたローカル変数です。

<set-variable variableName="places" value="{'Buenos Aires', 'Córdoba', 'La Plata'}"/>

上記の条件式を行う前にXSL、ペイロードを設定するトランスフォーマーがあります。ペイロードが空でない場合、条件式は正常に機能しますが、xsl トランスフォーマーが結果を返さず、条件ステートメントの上に#[payload]ある場合でも、 が返されます。emptytrue

どうすればこれを修正できますか?

EDIT XSLトランスフォーマーは次のように宣言されます。

<xm:xslt-transformer xsl-file="xsl/getPlaces.xslt" returnClass="java.lang.String"/>
4

2 に答える 2

1

There are two problems with your configuration:

  • The expression you use to create a list is not correct: it is actually just creating a String. Use a MEL expression instead:

    <set-variable variableName="places"
                  value="#[{'Buenos Aires', 'Córdoba', 'La Plata'}]"/>
    
  • Use MEL contains to find the String payload in this list of places:

    #[places contains message.payload]
    
于 2013-02-28T02:19:09.963 に答える
1

場所変数には、次の方法でアクセスする必要があります。

#[flowVars['places'].contains(message.payload)]
于 2013-02-27T20:04:50.687 に答える