java为什么在Camel 3.7.3中无法正确计算属性?
我有一条路线
String XYZ = "xyz";
from(URL_A)
.bean(PropertiesSetterBean.class)
.to("${property." + XYZ + "}")
其中PropertiesSetterBean
是:
@Component
class PropertiesSetterBean {
public void copyProperties(@Headers Map<String, Object> headers, @ExchangeProperties Map<String, Object> properties) {
properties.put("xyz", "direct:test")
}
}
我得到的错误是:
Failed to create route route1 at: >>> DynamicTo[${property.xyz}] <<< in route: Route(route1)[From[seda:inEvents?concurrentCon... because of Property with key [property.xyz] not found in properties from text: ${property.xyz}
看起来bean
没有被执行
我使用camel:3.7.3,springboot:2.4.3,java:11
我采取了以下步骤:
- 我读了迁移指南
- 查看了GitHub上可用的代码片段
- 搜索堆栈溢出
- 与同事交谈
我研究了一个类似的问题
尽管如此,我还是无法对这个问题进行分类
我做错了什么
更新1
我添加了处理器:
.process(exchange -> {
System.out.println("This is my property: " + exchange.getProperty("xyz"));
})
它起作用了。同时,我仍然无法使用Camel中的simple
DSL检索此属性
# 1 楼答案
经过几个小时的搜索没有结果,我遇到了一个old post
要访问该属性,我需要使用
"${exchangeProperty." + XYZ + "}"
注意:
$simple
而不是$
李>exchangeProperty