【问题标题】:Asynchronous reponses from webservice - CXF JAXWS来自 Web 服务的异步响应 - CXF JAXWS
【发布时间】:2013-11-20 14:17:57
【问题描述】:

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

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

【问题讨论】:

    标签: asynchronous jax-ws cxf


    【解决方案1】:

    您有两种选择可以使用 CXF 实现来自客户端的异步调用。

    • 您可以轮询服务以获取响应
    • 您可以定义一个回调,当服务器的工作完成时将执行该回调

    每种解决方案都有优缺点,所以请根据您的需要进行选择。

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

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

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

    请注意,如果您需要使用回调(似乎是这样),则必须在客户端定义一个 CXF 客户端以启用 WS 寻址(在 cxf 总线上)。

    【讨论】:

    • 谢谢Zenbeni...我按照您的建议进行了尝试和锻炼。您可以参考svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/…
    • 假设我们有“n”个类似的客户端在等待来自服务器的异步通知(Web 服务正在运行)。如何了解每个客户端并相应地通知它?如何实现这一点?另一个极端情况是,从服务器,我们会主动向客户端提供一些通知......在 java6 中怎么可能?
    猜你喜欢
    • 1970-01-01
    • 2020-02-02
    • 1970-01-01
    • 2019-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-23
    • 1970-01-01
    相关资源
    最近更新 更多