2017-05-25 7 views
2

これは私が出会った最近の問題の解決策を見つけるための最初の投稿です。 tokenize要素の "group"値にプロパティ(キー)値を割り当てるのに問題があります。プロパティー・ホールダーがあり、この制限が変更される可能性があるため、構成ファイルから読み取る値を読み取る必要があります。上記のhereのようにProperty Placeholderを使用してany kind属性を試しましたが、認識できない属性エラーで失敗します。Apache Camel:Tokenizerのグループ属性に整数値を割り当てます。

使用しているCamelのバージョンは、Spring DSLの2.15.1.redhat-621084で、コードは以下のとおりです。詳細が必要な場合はお知らせください。

<split> 
 
    <tokenize token="\n" group="7000"/> 
 
    ...

私達はちょうど上記の "グループ" の値を設定できるようにしたいです。これまたは簡単な回避策についての助力は非常に感謝しています。私もグループ値を設定するには、どのような方法を見つけることができません事前に

おかげで、 シャンクス

答えて

0

。だから、この奇妙な回避策を作成します。多分あなたを助けるでしょう。

<route> 
     <from uri="timer:foo?repeatCount=1"/> 
     <setBody> 
      <constant>123;321;444;555;666;777</constant> 
     </setBody> 
     <setHeader headerName="tokenizeGroup"> 
      <simple>properties-location:group</simple> 
     </setHeader> 
     <split> 
      <method bean="rt" method="createIterable"/> 
      <log message="Tokenized: ${body}"/> 
     </split> 
</route> 

方法createIterableは次のようになります。

public Object createIterable(@Header("tokenizeGroup") int group, Exchange exchange){ 
    TokenizerExpression tokenizer = new TokenizerExpression(); 
    tokenizer.setGroup(group); 
    tokenizer.setToken(";"); 
    Expression expression = tokenizer.createExpression(exchange.getContext()); 
    return expression.evaluate(exchange,Object.class); 
} 
関連する問題