如何识别Web服务是异步还是同步

时间:2015-03-14 10:03:58

标签: java web-services

我知道有两种类型的Web服务,称为异步Web服务和同步Web服务。我想知道的是

1。  我可以通过检查服务的WSDL来确定Web服务是异步还是同步?或者是否还有其他方法,例如检查生成的存根等?

2。 我可以为同步Web服务开发异步客户端吗?它有意义吗?

谢谢。

1 个答案:

答案 0 :(得分:3)

我不是专家,但我会给出两分钱,希望你觉得这很有用。

嗯,我认为这取决于。您可以拥有一个没有任何迹象的异步架构。有人可以实现以下

  1. 客户端向服务发出请求。
  2. 服务仅响应成功或错误消息以指示请求的状态。
  3. 服务开始处理请求。
  4. 该服务向另一个端点发出请求。此请求是第一个请求的实际响应。
  5. 服务获得响应,表明邮件已成功收到。
  6. 这是一种异步架构。完成后的服务(实际服务)将实际响应发送到端点。此端点实际上是发送第一个请求的客户端。

    此端点(客户端正在侦听的端点)的实际响应可以预定义(硬编码),也可以作为参数(回调)包含在第一个响应中。如果案例是后者,那么我猜你可以推断这是一个异步的Web服务。

    对于你问题的第二部分。是的你可以。请查看此Asynchronous web services calls with JAX-WS: Use wsimport support for asynchrony or roll my own?和此http://cxf.apache.org/docs/asynchronous-client-http-transport.html