camel-fuse 2.8
我有一个camel jaxrs服务器接受请求然后启动2个Camel路由。
第一个路由,消耗来自cxfrs endpoint / bean的请求,并将它们发送到jms队列收件箱。
第二个路由,使用来自jms队列收件箱的请求进行业务逻辑处理,然后将结果发送到jms queue outbox 。
我的问题与http响应有关,并将结果发送给jaxrs服务器使用者。
是否可以通过第二条路线的结果从第一条路线向http客户端发送http响应? (同步)
from("cxfrs:bean:personLookupEndpoint") <-- http client waits for response...
.setExchangePattern(ExchangePattern.InOut)
.process(new RequestProcessor())
.to(inbox);
from(inbox)
.unmarshal(jaxb)
.process(new QueryServiceProcessor())
.to("bean:lookupService?method=processQuery(${body})")
.convertBodyTo(String.class)
.to(outbox); <-- need to send results to font-end consumer synchronously ...
答案 0 :(得分:1)
你真的需要使用队列吗?我认为最好使用direct:routes。
有可能将InOut交换模式用于JMS端点,但它有一些限制:http://fusesource.com/docs/router/2.2/transactions/JMS-Synchronous.html