2010-09-17 57 views
1

如果应用程序在很大程度上依赖于SOAP Web服务来基于它接收到的数据来提取数据和构建页面,那么如果soap web服务不起作用,如何确定并处理它?如何确定肥皂web服务是上下还是如何响应?

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

历史了解项目和我的顾虑:

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

我的担心在于做什么以及如何在Web服务出现故障时很好地处理错误。

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

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

回答

1

要确定它是关闭的唯一方法是做一个请求。如果它只是拉取数据而不改变它,并且经常拉取相同的数据,那么您可能需要缓存返回结果(Web服务的所有者甚至可能会这样),并在服务器不可访问时提供服务/请求失败。

服务器可以下当WSDL是可用的,它甚至可以喷出,如果事情是错误的服务器上的SOAP错误信息不相关的请求等

+0

我很想更新我的问题,以更详细地解释情况。 – Chris 2010-09-17 15:40:03

1

这是不寻常的SOAP Web服务有一个听觉方法。

该方法不处理,但返回一个特定的值。

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

如果您的服务心跳方法调用为您提供该值,那么该服务已启动并正在运行,否则连接到服务/服务时出现问题并不起作用。

+0

谢谢,我打算看看这个。我看到的唯一问题是我不是肥皂服务器的实施者,仅仅是肥皂客户端,所以我将不得不与供应商一起工作,看看我能否让他们实现这一点。 – Chris 2010-09-17 16:01:41