在 DSL 中访问骆驼属性

Accessing camel properties in DSL

我在 camel 上下文 xml 中定义了如下属性。这些属性会因来自 API 暴露的不同调用而异。

<util:properties id="abc-properties">
     <prop key="serviceId"></prop>
     <prop key="name"></prop>
 </util:properties>
<propertyPlaceholder location="ref:abc-properties" id="properties" />

在我的 Java DSL 中,我尝试按以下方式在 'from' 和 'to'

中访问这些属性
from(Identifier + ":" + abcName + "://{{serviceId}}")
to(Identifier + ":" + abcName + "://{{serviceId}}")

当我形成我的 DSL 路由时,我发现 'to' 我没有获得 serviceId 的更新值。第一次出现的值继续出现在所有后续调用中。对于 'from' 我总是获得 serviceId 的更新值。

通过引用 post Use Exchange Property in Camel DSL "to" ,我尝试使用 recipientList 但似乎也没有用。

我是否需要使用任何其他语法来访问 'to' 中的 属性?

请试试这个:

from(
    Identifier + ":" + abcName + "://{{serviceId}}"
).recipientList(
    simple(Identifier + ":" + abcName + "://${properties:serviceId}")
)