我正在尝试在驼峰路线中使用属性占位符。 我有test.properties定义属性:MQ.queuename1 = TESTQUEUE。 在camel上下文中,我定义了占位符:
<camel:camelContext xmlns="http://camel.apache.org/schema/spring" >
<propertyPlaceholder id="camel-properties" location="file:${web.external.propdir}/test.properties"/>
在路线中,我使用简单的表达来评估属性:
<choice>
<when>
<simple>${in.header.queuename} == '{{MQ.queuename1}}'</simple>
<bean ref="ExtractOrderContent" method="extractContent"/>
<to uri="websphere-mq:queue:TESTQUEUE" pattern="InOnly"/>
</when>
</choice>
当我运行camel时,属性文件被camel识别,但看起来简单的表达式不起作用。我什么都错过了?
答案 0 :(得分:12)
您可以使用简单(http://camel.apache.org/simple)
中的属性功能<simple>${in.header.queuename} == ${properties:MQ.queuename1}</simple>
嵌套&lt; {{}}何时>可能是由于一个bug,已经在较新的Camel版本中得到修复。
答案 1 :(得分:2)
从您提供的路由配置中,您似乎错过了在标头中设置queuename。相反,您应该使用属性组件作为
<simple>${properties:queuename} == 'MQ.queuename1'</simple>