例如:
from("direct:test")
.multicast()
.to("direct:req1","direct:req2");
from("direct:req1")
.to(cxf:bean:endpoint1)
.process("response1");
from("direct:req2")
.process("requestProcessor2")
.to(cxf:bean:endpoint2)
.process(response2);
我是apache camel的新手,我只想知道是否有任何方法可以使用我从endpoint1中获得的响应" requestProcessor2"
答案 0 :(得分:5)
你可以做这样的事情
from("direct:test")
.setProperty("test.body", body())
.to(cxf:bean:endpoint1)
.setProperty("endpoint1.body", body())
.process("response1")
.setBody(exchangeProperty("test.body"))
.to("direct:req2")
from("direct:req2")
.process("requestProcessor2")
.to(cxf:bean:endpoint2)
.process(response2);
您可以将原始正文保存在属性中,也可以从endpoint1保存正文。然后,您可以将交易所发送至:req2,其中包含exhcnage正文中的原始正文,以及您可以访问的属性中的正文形式endpoint1(在处理器或其他位置)。
要访问处理器中的属性:
public void process(final Exchange exchange) throws Exception {
Object body = exchange.getProperty("endpoint1.body");
}
答案 1 :(得分:0)
您的问题已经有了答案,使用,您可以从交换中获取您想要的路线。还可以考虑在最终路线上移除该物业。