Camel .contains()不搜索属性文件中的值

时间:2017-01-17 09:42:56

标签: java apache-camel

我需要在文件中搜索字符串,我已经使用了下面的java代码搜索字符串,正如我预期的那样工作,

.when(body().convertToString().contains("mytext"))

如果我需要更改搜索字符串,我必须再次重新编码,所以我尝试从属性文件中加载搜索字符串,如下所示 我在属性文件中定义了findme='mytext',但不会搜索带有“properties:{{findme}}的字符串”

.when(body().convertToString().contains("properties:{{findme}}"))

2 个答案:

答案 0 :(得分:1)

我认为应该是:

.when(body().convertToString().contains("{{findme}}"))

来自Apache Camel documentation on properties

  

<强>语法

     

使用Camel的属性占位符的语法是使用{{key}}   示例{{file.uri}}其中file.uri是属性键。您可以使用   例如,端点URI的部分中的属性占位符   您可以在URI中使用占位符作为参数。

答案 1 :(得分:0)

我不认为contains会执行预期的simple表达式。您应该明确包含值。

when(body().convertToString().contains(exchangeProperty("findme")))