来自webservice的异步响应 - CXF JAXWS

时间:2013-11-20 14:17:57

标签: asynchronous jax-ws cxf

我需要从我的CXF(JAX WS)Web服务层向客户端发送异步消息......

客户如何能够接收它?需要采取哪些步骤来实现这一目标?是否有可用的示例教程?

1 个答案:

答案 0 :(得分:1)

您可以通过两种方式从客户端使用CXF实现异步调用。

  • 您可以轮询服务以获取响应
  • 您可以定义将在服务器的作业完成时执行的回调

每种解决方案都有利弊,因此请根据您的需求进行选择。

轮询为您提供了一个Response对象,您可以通过response.isDone()测试该调用是否完成。 (如果没有,请等一段时间,然后发送另一个请求)

回调为您提供了一个包装调用的Future对象,您可以在调用服务时定义AsyncHandler,以定义在进程完成时将运行的内容。

从服务器端,您应该查看WS-Addressing(如果需要,为回调定义replyTo端点)和WS-POLICY:http://cxf.apache.org/docs/ws-addressing.html

请注意,如果您需要使用回调(看起来如此),则必须在客户端定义一个CXF客户端以启用WS-addressing(在cxf总线上)。