Apache Camel:如何正确嵌套函数?

时间:2015-04-07 17:56:06

标签: spring apache-camel

在Camel的Simple documentation中,他们说:

  

从Camel 2.9开始,您可以嵌套函数,如下所示:

<setHeader headerName="myHeader">
  <simple>${properties:${header.someKey}}</simple>
</setHeader>

以下是我要做的事情:

<simple>${property.${property.prefix}variableName}</simple>

我正在尝试访问名称为的交换媒体资源:

exchange.getProperty("prefix", String.class) + "variableName"

但是我得到了这个例外:

Caused by: org.apache.camel.language.simple.types.SimpleIllegalSyntaxException: ${ cannot accept or at location 22
${property.${property.prefix}variableName}

我在这里做错了什么?

我使用的是Camel版 2.13.0

1 个答案:

答案 0 :(得分:0)

我确认以下代码适用于Camel 2.13.0

from("...")
    .setProperty("prefix", constant("pre-"))
    .setProperty("pre-variable", constant("value"))
    .setHeader("myHeader", simple("${property.${property.prefix}variable}"))

prefix属性中可能包含阻止正确解析的特殊字符。