apache camel请求响应以及如何路由到下一个变换器

时间:2012-05-02 16:31:52

标签: cxf apache-camel

路由的概念在理论上很好,但在实践中,我有点困惑。我的网络服务中有一个CXF方法

public Response someMethod(Request r) {
}

我没有得到的是我需要将Request路由到另一个节点,所以我真的应该在java代码中执行此操作,或者我将生成一个接口(希望asynch),我可以将该节点连接到一些转换器到下一个节点验证器到一些存储和转发等,然后最终有一个存储和转发回复,一个响应,以某种方式发送出来自最初的请求进来的套接字。

在上面的方法中,我被迫以该方法将响应返回给客户端,对吧?

如果我应该将代码放在webservices方法中,是否有一些我应该调用的驼峰语境?

另外,我想要SOAP方法调用的“RAW”参数,并且不想处理SOAP Header,然后还需要公开一些REST apis,只接受一个String。

编辑:下面的答案中的代理示例是我见过的最接近的,但即使是那个,如果我想要快捷方式,甚至不在管道中的早期节点上调用真正的web服务,我也不能。我似乎不得不调用最终的webservice代码,因为我们没有任何webservice代码。我们正试图通过webservice调用中的现有pojos来运行它。如果验证节点失败,我们想要返回响应,如果成功,我们想要将请求转发到另一个节点,如果该节点失败,我们返回响应,或者如果成功,我们想要转发请求。这似乎什么都没有?此外,这对我来说似乎是一个非常典型的案例,所以我很惊讶或者我没有得到所有这些ESB框架(到目前为止骡子,骆驼)。

感谢, 迪安

2 个答案:

答案 0 :(得分:0)

Look at this official Example, it'll show how to do this Or this Cxf proxy example if you want the RAW request

如果您已经使用Spring MVC webapp,那么使用Spring WS和Jaxb可能会更容易。但那是品味问题。 Example code here

答案 1 :(得分:0)

永远不会解决,我们放弃了骆驼,因为与滚动你自己相比,这是非常痛苦的。