如何在2个camel路由之间传输上下文(在相同的camelContext中)

时间:2011-10-12 14:33:16

标签: java apache-camel

以下是我的应用程序的工作原理:

用户开始填写表单并提交。此操作启动第一个执行某些处理的camelroute,直到向用户返回“请保留,处理您的请求...”类型的视图。

此视图发送一个AJAXRequest,触发第二条路径启动。

第一条路径使用上下文数据丰富了一个对象,我需要了解第二条路径。如何实现这一目标?

它存储在第一个路径的头部in.header中,并且它有很多参考字段,这些参考字段的深度很低,这使得将它们作为Html表单请求的一部分发送时不那么快乐

是否有一种在路线之间发送对象的好方法?

1 个答案:

答案 0 :(得分:0)

通常,JMS是在异步执行的路由之间共享数据的不错选择。您的用例还需要将丰富的消息与后续请求(通过requestId等)相关联。

一种选择是使用JMS selectors在第二条路线中提取相应的丰富消息。

另一个选项(而不是使用JMS)是使用内存缓存(camel-cachecamel-hazelcast)将丰富的消息存储在内存中,然后在第二条路径中检索/清除它们。 / p>

[todo:添加示例]