这个问题可能有点抽象,但我试图用Apache Camel
做点什么而且我被卡住了。
基本情况是这样,我通过Camel公开了一个web服务A
,在这个服务中,有一个基于内容的路由来决定我是否必须调用B
或C
,我想要调用正确的答案,并将B
或C
的答复作为我服务的回复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基础设施来实现。
有人对此有任何指示吗?如有必要,我很乐意提供更多信息
答案 0 :(得分:1)
Camel提供Bean binding,您不需要触及Camel API的大部分内容,并专注于POJO bean中所需的业务逻辑。 如果您使用Processor API,您可以自己处理Exchange,如果您在交易所设置了消息,则可以将响应发送回客户端。