在 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}")
)
我在 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}")
)