1

我在 CXF 框架上构建了一个宁静的 Web 服务。要求是,当有人访问此服务器时,我必须根据收到的参数从内容提供商(如 google、bing 等)获取一些数据,并且必须将这些数据返回给客户端。现在调用服务提供者并获得其结果将使用 Camel 框架完成。我已经确定使用简单的路由 from("direct:start").to("http://google.com).bean(ffoo|bar) 可以让我与服务提供商交谈并对结果做任何我想做的事情.但问题是应该用什么代替“direct:start”,以便这条路线从我的服务方法开始,该方法被客户端击中。我读了一些关于POJO生产的信息,但我不明白它是如何工作的以及它是否会解决我的问题。

另外我有一个查询..在这种语法中.. from().to() ... to 是消费者,而 from 是生产者,反之亦然?因为在我的日志中它说路线正在消耗直接:开始......更喜欢弹簧配置类型的答案

谢谢

4

2 回答 2

1

是的,Camel 可以公开 REST 服务并将这些请求路由到下游。

您可以使用几个选项。听起来第一个选项是最不痛苦的:

编辑- 回复评论

上述所有组件都可以在服务器端使用,以将服务器公开为基于 REST 的 Web 服务。在骆驼语中,这意味着您将组件用作消费者,因为它使用来自外部的消息。

有关生产者与消费者的更多信息,我无法比作者本人更好地解释它。

于 2012-04-19T12:09:07.723 回答
0

最初我为我的 web 服务实现了 cxfrs 组件(受到 Roy Truelove 的回答的启发),但这会导致其他并发症。所以现在使用 direct:start 组件来启动路由.. 我的配置如下所示:

<camel:route>
<camel:from uri="direct:start" />
<camel:process ref="customInProcessor" />
<camel:to uri="http://localhost:8080/DummyGoogleProject/search" />
<camel:to uri="bean:googleResponseHandler" />
</camel:route>
</camel:camelContext>

customInProcessor做了一些处理,比如修改CamelHttpUri 、 Path 、 Query 等(没有这个在路由执行中会出现一些问题)

于 2012-04-24T09:50:41.503 回答