这个问题可能有点抽象,但我正在尝试使用 Apache Camel 做一些事情,但我陷入了困境。
基本场景是这样的,我通过Camel公开一个web服务A
,在这个服务中,有一个基于内容的路由来决定我是否必须调用B
或 C
,我想调用正确的一个,并将来自 B
或 C
的响应作为我的服务的响应A
我已经用camel-cxf
公开了Web服务,它运行得很好,但我不知道之后如何进行路由,我想到了这一点:
from("cxf:bean:myServiceA").choice()
.when(new PredicateForServiceB())
.process(new ProcessorForServiceB())
.when(new PredicateForServiceC())
.process(new ProcessorForServiceC())
.otherwise()
.endChoice()
.to("log:output");
我不确定这是否是最好的方法,或者即使这是正确的,但这是我想出的。
现在我不知道如何实现这些处理器,我可以创建对服务的正常调用并构建输出,但我想使用 Camel 基础设施来实现。
有人对此有任何指示吗?如有必要,我很乐意提供更多信息
最佳答案
Camel 提供 Bean binding ,您不需要接触太多 Camel API,只需关注 POJO bean 中所需的业务逻辑即可。 如果您使用Processor API ,您可以自己处理 Exchange,然后如果您在 Exchange 上设置了消息,则可以将响应发送回客户端。
关于java - 我可以使用 Apache Camel 调用 Web 服务并返回响应吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27306157/