Apache camel apache camel调度程序组件交换属性计时器\u名称为空

Apache camel apache camel调度程序组件交换属性计时器\u名称为空,apache-camel,Apache Camel,我正在开发一个类似这样的apache camel路线 @Override public void configure() throws Exception { from("scheduler:intervalo?initialDelay=1000&delay=10000") .setProperty("test",simple("valueTest1")) .log("v1 ->${exchangeProperty.TIMER_NAME}&l

我正在开发一个类似这样的apache camel路线

@Override
public void configure() throws Exception {
    from("scheduler:intervalo?initialDelay=1000&delay=10000")
        .setProperty("test",simple("valueTest1"))
        .log("v1 ->${exchangeProperty.TIMER_NAME}<-")
        .log("v2 ->${exchangeProperty.TIMER_FIRED_TIME}<-")
        .log("v3 ->${exchangeProperty.test}<-")         
    .end();
}//configure
@覆盖
public void configure()引发异常{
从(“调度器:间隔?初始延迟=1000&延迟=10000”)
.setProperty(“测试”,简单(“valueTest1”))

.log(“v1->${exchangeProperty.TIMER\u NAME}${exchangeProperty.TIMER\u Fireed\u TIME}${exchangeProperty.test}您使用了错误的名称,因为它们是在
交换
接口上定义的常量,所以它们的值是

  • 字符串计时器\u NAME=“CamelTimerName”
  • 字符串计时器\u FIRED\u TIME=“CamelTimerFiredTime”
因此,在日志记录中使用
CamelTimerName
。您也可以使用tracer查看发生了什么,而不是添加日志本身:

.log(${exchangeProperty[CamelTimerFiredTime]}”).log(${exchangeProperty[CamelTimerName]})
工作得很好。但我现在想知道是否有办法不使用常量的实际值,而是使用变量的名称。有些东西
${exchange….}
我一直在阅读,但我不太理解exchange或type部分。
[ead #2 - scheduler://intervalo] route1                         INFO  v1 -><-
[ead #2 - scheduler://intervalo] route1                         INFO  v2 -><-
[ead #2 - scheduler://intervalo] route1                         INFO  v3 ->valueTest1<-