InOut交换模式如何在CAMEL中运行?

时间:2014-04-11 12:30:58

标签: java apache-camel

默认情况下,Camel路由遵循inout交换模式。所以我不确定谁会在下面的例子中使用incomingOrders的输出?

<route id="FileToJMS">
  <from uri="file:target/placeorder" />
  <to uri="jms:incomingOrders" />
</route>

2 个答案:

答案 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)。如果您希望在获取下一个文件之前完成一个文件的处理(取决于文件组件端点使用者中定义的选项),这将是有意义的。