我需要从我的CXF(JAX WS)Web服务层向客户端发送异步消息......
客户如何能够接收它?需要采取哪些步骤来实现这一目标?是否有可用的示例教程?
答案 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总线上)。