2016-09-09 4 views
0

Camel(v2.17.3)でSpring(v4.3.2.RELEASE)を使用していて、メソッドにプロパティパラメータを渡すのに問題があります。Camel - メソッドに渡すプロパティパラメータがchoice/whenで動作しません。

が、私はプロパティの選択/が、それはプレーンな文字列が渡されていない値{{elmu.inMask}})を実行しようとしました:最後に

<choice> 
     <when> 
      <method ref="eleoHelper" method="checkInMask(${exchange}, ${file:name}, {{elmu.inMask}})" /> 
      <log message="${body}" /> 
     </when> 
    </choice> 

を、私は考え出したとき、I setHeaderで同じものを使用してください(また、ヘッダの値を選択肢の回避策として使用する場合)。うまくいきます。

<setHeader headerName="toCollect"> 
     <method ref="eleoHelper" method="checkInMask(${exchange}, ${file:name}, {{elmu.inMask}})" /> 
    </setHeader> 

しかし、私はいくつかのプロパティを持っていますが、私はこの回避策が嫌いです。

プロパティのBean定義:

<bean id="properties" class="org.apache.camel.component.properties.PropertiesComponent"> 
    <property name="location" value="file:ELEOSFTP.properties" /> 
    <property name="encoding" value="UTF-8" /> 
</bean> 

コールドあなたは私のコードで間違っているものを私に言うとどのように私は選択肢/ときにプロパティ値を使用できますか?

答えて

0

これらはBeanプロパティです。私はあなたがプロパティをマップするためにsetter/getterとクラス変数を作成する必要があると思います。

<cm:properties>で定義されている標準プロパティーは、行った方法で参照できます。

+0

感謝。私のプロジェクトは、OSGIではなく、簡単なバネXMLです。私はタグを使用したことはありません。 –

+0

私はキャメルの初心者です。私は回避策を行うことができます(しかし、望んでいない)、私は実際にsetHeaderで同じ作業をしているときに置換を動作させない理由を理解できませんか? –

+0

その場合、あなたはキャメルとスプリングを橋渡しする必要があります。 CamelとSpringのブリッジに関するセクションのhttp://camel.apache.org/properties.htmlを参照してください。詳細はこちら:http://camel.apache.org/how-do-i-use-spring-property-placeholder-with-camel-xml.html –

0

試してみてください。

method=checkInMask($exchangeProperty.<property name>) 
+0

、Exchangeではなく、ファイル内の私のプロパティ。 –

関連する問題