spring DSL 问题中 header 基于 Camel 内容的路由
Camel content based routing with header in spring DSL issue
我正在尝试使用 Spring DSL 进行某些路由的骆驼。我无法将消息发送到目的地。我知道我遗漏了一些东西,请帮我找出问题所在。
我在 deviceMessageRouteIdentifier 中设置 headers 如下
Message outMsg = exchange.getOut();
outMsg.setHeader("device_template_id","11");
outMsg.setHeader("view_id", "2");
我的骆驼路线在这里
<camel:route>
<camel:from uri="direct:devicemessageprocessor"/>
<camel:bean ref="deviceMessageRouteIdentifier"/>
<camel:to uri="seda:deviceRouting"/>
</camel:route>
<camel:route>
<camel:from
uri="seda:deviceRouting?concurrentConsumers=10&blockWhenFull=true&purgeWhenStopping=true" />
<choice>
<when>
<header>$device_template_id = '11'</header>
<to uri="direct:gen2Bridge" />
</when>
<when>
<header>$view_id = '1'</header>
<to uri="direct:prediction" />
</when>
</choice>
</camel:route>
<camel:route>
<camel:from uri="direct:gen2Bridge"/>
<camel:bean ref="gen2BridgeProcessor" />
</camel:route>
我可以到达 deviceMessageRouteIdentifier 但无法到达目的地 gen2BridgeProcessor
提前致谢
你应该使用简单的语言作为谓词,而不是header。 header 仅用于查找 header 值。
<header>$device_template_id = '11'</header>
应该是
<simple>${header.device_template_id} == '11'</simple>
等号运算符是==
。详见简单语言
我正在尝试使用 Spring DSL 进行某些路由的骆驼。我无法将消息发送到目的地。我知道我遗漏了一些东西,请帮我找出问题所在。 我在 deviceMessageRouteIdentifier 中设置 headers 如下
Message outMsg = exchange.getOut();
outMsg.setHeader("device_template_id","11");
outMsg.setHeader("view_id", "2");
我的骆驼路线在这里
<camel:route>
<camel:from uri="direct:devicemessageprocessor"/>
<camel:bean ref="deviceMessageRouteIdentifier"/>
<camel:to uri="seda:deviceRouting"/>
</camel:route>
<camel:route>
<camel:from
uri="seda:deviceRouting?concurrentConsumers=10&blockWhenFull=true&purgeWhenStopping=true" />
<choice>
<when>
<header>$device_template_id = '11'</header>
<to uri="direct:gen2Bridge" />
</when>
<when>
<header>$view_id = '1'</header>
<to uri="direct:prediction" />
</when>
</choice>
</camel:route>
<camel:route>
<camel:from uri="direct:gen2Bridge"/>
<camel:bean ref="gen2BridgeProcessor" />
</camel:route>
我可以到达 deviceMessageRouteIdentifier 但无法到达目的地 gen2BridgeProcessor
提前致谢
你应该使用简单的语言作为谓词,而不是header。 header 仅用于查找 header 值。
<header>$device_template_id = '11'</header>
应该是
<simple>${header.device_template_id} == '11'</simple>
等号运算符是==
。详见简单语言