我可以使用Apache Camel调用Web服务并返回响应吗?

时间:2014-12-04 23:30:44

标签: java web-services apache-camel

这个问题可能有点抽象,但我试图用Apache Camel做点什么而且我被卡住了。

基本情况是这样,我通过Camel公开了一个web服务A,在这个服务中,有一个基于内容的路由来决定我是否必须调用BC ,我想要调用正确的答案,并将BC的答复作为我服务的回复A

我已经使用camel-cxf公开了网络服务并且效果非常好,但是之后我不知道如何进行路由,我已经想到了这个:

from("cxf:bean:myServiceA").choice()
    .when(new PredicateForServiceB())
        .process(new ProcessorForServiceB())
    .when(new PredicateForServiceC())
        .process(new ProcessorForServiceC())
    .otherwise()
    .endChoice()
.to("log:output");

我不确定这是不是最好的方式,或者即使这是正确的,但这是我想出来的。

现在我不知道如何实现这些处理器,我可以创建一个正常的服务调用并构建输出,但我想用Camel基础设施来实现。

有人对此有任何指示吗?如有必要,我很乐意提供更多信息

1 个答案:

答案 0 :(得分:1)

Camel提供Bean binding,您不需要触及Camel API的大部分内容,并专注于POJO bean中所需的业务逻辑。 如果您使用Processor API,您可以自己处理Exchange,如果您在交易所设置了消息,则可以将响应发送回客户端。