如何判断肥皂网服务是上升还是下降以及如何做出相应的响应?

时间:2010-09-17 15:26:35

标签: php web-services soap

如果应用程序在很大程度上依赖于SOAP Web服务来提取数据并根据它接收的数据构建页面,那么如果soap Web服务不起作用,那么确定和处理它的最佳方法是什么?

WSDL是否可用,但Web服务是否已关闭?我被告知这是可能的。

了解项目的历史和我的关注点:

  • 此应用程序的构建是因为我们有第三方供应商service-now.com为我们提供IT管理。
  • 问题是service-now的基于Web的界面无法访问,我们无法向最终用户提供不可访问的服务。一旦我们了解了他们的Web服务规定,我就使用soap完全在php中重建了自助服务 - 现在模块,并与他们的Web服务交互以对他们的数据执行CRUD。这样我们就有了一个更好看的界面,并且可以访问它。

我关心的问题在于如何处理以及如何在Web服务出现故障时妥善处理错误。

我编写了一个定义与Web服务的所有交互的接口,我编写了一个实现此接口的客户端类。客户端类中的所有方法都在try / catches中,因此我知道在请求数据或从此Web服务中提取数据时出现问题。

但是,在向用户显示登录页面之前,先抢先检查Web服务是否已关闭。这就是我真正想要的。

2 个答案:

答案 0 :(得分:1)

确定它的唯一方法是做一个请求。如果它只是提取数据,而不是改变它,并经常提取相同的数据,你可能想要缓存返回(web服务的所有者甚至可能喜欢),并在服务器无法访问/请求失败时提供服务

当wsdl可用时,服务器可能会关闭,如果服务器上出现问题,它甚至可以发出与您的请求无关的SOAP错误消息等。

答案 1 :(得分:1)

SOAP Web服务使用听力方法的情况并不少见。

此方法不进行处理,但返回特定值。

关于这个方法应该是什么以及它应该返回什么,有多个讨论。您可以查看此link了解某些选项

如果您对服务心跳方法的调用给出了该值,那么该服务已启动并运行,否则与服务/服务的连接存在问题。