2017-05-25 98 views
2

這是我在這裏的第一篇文章,爲我遇到的最近問題尋找解決方案。我有一個問題,將屬性(鍵)值分配給tokenize元素中的「group」值。我們有屬性的佔位符,我們需要讀取配置文件中讀取的值,因爲這個限制可能會改變。我們已經使用Property佔位符here嘗試了任何類型的屬性,但它失敗並導致無法識別的屬性錯誤。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); 
}