骆驼CXFRS响应

时间:2013-02-04 18:22:43

标签: apache-camel

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 ...

1 个答案:

答案 0 :(得分:1)

你真的需要使用队列吗?我认为最好使用direct:routes。

有可能将InOut交换模式用于JMS端点,但它有一些限制:http://fusesource.com/docs/router/2.2/transactions/JMS-Synchronous.html