我的要求似乎很简单。我需要根据我需要的输入文件的文件名来轮询单个目录;
a)设置标头值 b)将消息定向到特定的JMS队列
我已经尝试了几种不同的方法来实现这一点,但基于文档,后续应该工作..显然对我来说它不...
<from uri="file:[some input directory]"/>
<when>
<simple>${file:name} contains 'new'</simple>
<setHeader headerName="messageType">
<constant>NEW</constant>
</setHeader>
<to uri="jmsbroker:queue:[queue for new items]"/>
</when>
<when>
<simple>${file:name} contains 'amend'</simple>
<setHeader headerName="messageType">
<constant>AMEND</constant>
</setHeader>
<to uri="jmsbroker:queue:[queue for amended items]"/>
</when>
<when>
<simple>${file:name} contains 'other'</simple>
<setHeader headerName="messageType">
<constant>OTHER</constant>
</setHeader>
<to uri="jmsbroker:queue:[queue for other]"/>
</when>
<otherwise>
<bean ref="deadLetterErrorHandler"/>
</otherwise>
</route>
任何帮助都非常感激。
此致 安迪
答案 0 :(得分:2)
<choice>
个<when>
条件<otherwise>
失踪(请参阅content based router docs)
另外,您的 <route>
<from uri="file:/tmp/inbox"/>
<choice>
<when>
<simple>${file:name} contains 'new'</simple>
<setHeader headerName="messageType">
<constant>NEW</constant>
</setHeader>
<to uri="jmsbroker:queue:newItems"/>
</when>
<otherwise>
<to uri="jmsbroker:queue:errorQueue"/>
</otherwise>
</choice>
</route>
部分应该只是路由到错误队列或抛出异常......
尝试这样的事情......
{{1}}