如何实现Spring DSL中给出的以下谓词示例:
Predicate isWidget = header("type").isEqualTo("widget");
from("jms:queue:order")
.choice()
.when(isWidget).to("bean:widgetOrder")
.when(isWombat).to("bean:wombatOrder")
.otherwise()
.to("bean:miscOrder")
.end();
像这样:
<route>
<from uri="jms:queue:order"/>
<choice>
<when>
<simple>${header.type} == 'widget'</simple>
<to uri="bean:widgetOrder"/>
</when>
<when>
<simple>${header.type} == 'wombat'</simple>
<to uri="bean:wombatOrder"/>
</when>
<otherwise>
<to uri="bean:miscOrder"/>
</otherwise>
</choice>
</route>
Spring应用程序上下文的标头中没有name属性,并且<isNotEqualTo>根本不存在。
你的骆驼和春季版本是什么?
无论如何,您可以在<when>中代替谓词:<simple> $ {header.type =='wombat'} </ simple>
这个语法是错误的。看看Dhiraj的答案。