0

我在一次集成实习生职位的技术面试中被问到这个问题。

他在深入了解 SOAP Web 服务。

问题)。假设您通过 SOAP 向客户端公开 Web 服务。当您检查它时,您提供服务的 url 已启动并正在运行。但是客户有问题,他无法访问您的网络服务。您将如何继续解决此问题?

我的回复:

我会首先检查客户端尝试访问服务的 url 是否正确。将检查 .wsdl 文件:端口、绑定 & 将检查一次是否在向 URL 发送 SOAP 请求时,我是否通过 SOAP UI 在本地接收 SOAP 响应。如果我收到错误,将根据我收到的错误类型进行故障排除:例如找不到页面、空异常等。

我觉得他还在期待其他的点。他暗示说您将在哪个注册表中检查已托管的所有 Web 服务(我想这主要是生产支持问题:P)

我告诉过我可能会查看 UDDI 注册中心,但对此不确定。

请让我知道您对什么可能是正确的方法的意见?

4

1 回答 1

1

Apache jUDDI PMC 在这里。是的,UDDI 可用于验证客户端是否指向正确的位置,假设客户端知道 UDDI 服务器的位置以及它已注册,并且客户端知道在 UDDI 服务器上查询什么,并且 UDDI 查询是其中的一部分客户的正常工作流程。这是很多假设,但肯定是可行的。

大多数时候,端点位于某个配置文件中,或者某些白痴对其进行了硬编码。

也就是说,这是我检查 SOAP 服务连接性的首选列表(从客户端的角度来看)

  • URL 中主机名的 DNS 解析
  • ping 远程主机
  • HTTP GET 到 SOAP 服务的 URL + ?wsdl(这通常有效)。这也是验证 SSL 连接性的好时机。
  • 您还可以解析 WSDL 文档,假设返回一个用于标识端点 url。
  • 最后,如果一切正常,执行服务。HTTP 200 通常是一个积极的信号

编辑:另一种替代方法是在每个 SOAP 服务上实现一个非常简单的 API(wsdl 方法),该服务简单地返回一个真/假,回答“我开门营业吗?”这个问题。这种方法将提供一种标准化的方法,通过测试外部依赖项(数据库和诸如此类)来识别服务是否可用。

于 2017-10-14T00:18:42.597 回答