如何处理头在Apache的骆驼

问题描述:

如果我有一个像的InOut路线,如何处理头在Apache的骆驼

from("activemq:queue:MY_QUEUE") 
     .process(this.processor1) 
     .to("ahc:http:\\abc.com/v1/post/id=123") 
     .process(this.processor2); 

我如何可以确保只有特定的HTTP报头(例如,接受授权,内容类型)被传递到AHC组件而JMS头(JMSReplyTo)传播直到路由结束?

当你处理你的处理器1,交换只设置了所有必需的头/身体不要“exchange.getIn()......”但对“exchange.getOut()。”

更多细节可文档 http://camel.apache.org/using-getin-or-getout-methods-on-exchange.html

+0

我如何传播从处理器1的报头字段(或一些数据),以在processor2发现? – joshu

+1

来自处理器1的exchange.out是在下一个处理器中的交换。因此,在处理器1中设置标题。另外我相信,标题会一直传递到路径的末尾,除非您明确地删除它们。如果需要在处理器之间发送数据,还可以在交换中设置属性。 –

+0

在一般性交换头是不是对自定义数据交换(即使我们能以这种方式使用它们),但大多为协议相关PARAMS如HTTP方法/ URI/SFTP路径等 对不同的部件之间传输自己的数据(包括处理器)您需要使用交换属性。它们与一般交换(而不是进出消息)相关,并保持不动,直到你不会删除它们。几乎所有(如果不是全部的话)路由处理器(如分离/循环/多播)都在保存它们 –