默认情况下,Camel路由遵循inout交换模式。所以我不确定谁会在下面的例子中使用incomingOrders的输出?
<route id="FileToJMS">
<from uri="file:target/placeorder" />
<to uri="jms:incomingOrders" />
</route>
答案 0 :(得分:0)
因为<to..
是路线的最后一个终点,所以当路线结束时,输出将被忽略。
答案 1 :(得分:0)
默认交换模式(从WSDL规范https://www.w3.org/TR/2004/WD-wsdl20-patterns-20040326/#patterns派生)取决于目标端点的camel组件。 InOnly交换模式是SEDA,JMS和文件组件(http://camel.apache.org/event-message.html)的默认模式,而InOut在语义上是Direct组件的默认模式。
在提供的示例中,使用了InOnly交换模式,因此文件端点使用者将消息排入JMS队列并继续。如果使用了InOut交换模式,则生产者将阻塞,直到返回回复消息并继续返回消息(http://camel.apache.org/request-reply.html)。如果您希望在获取下一个文件之前完成一个文件的处理(取决于文件组件端点使用者中定义的选项),这将是有意义的。