【问题标题】:Does this SOAP Fault mean what I think it means?这个 SOAP 错误是否意味着我认为的意思?
【发布时间】:2009-11-12 05:53:32
【问题描述】:

所以,我正在努力将 Fedex 的地址验证集成到我正在开发的网站中。 Fedex Web 服务是基于 SOAP 的,所以我们在这里是 WSDL 的神奇之地。我对 Web 服务还不是很熟练,所以请耐心等待。

只能在生产级别使用地址验证服务;我已经找到了我的生产凭据,并且在我的 WSDL 的端口部分中有一个生产 URL。

在测试服务集成时,我收到了这条挑衅性的消息:

故障 代码:版本不匹配 字符串:错误的版本

到目前为止,Fedex 支持似乎无法回答这个问题,所以我要在这里问它:为什么我会遇到这个问题?我是否怀疑我们服务器上的 SOAP 版本可能已过时,如果是,是否有任何人知道的解决方法?

【问题讨论】:

  • 故障码有点稀疏——你用的是哪个SoapClient?
  • Henrik--开始使用 PHP 的原生 SOAP 方法,转而使用 NuSOAP,因为它可以为我提供更好的调试信息。

标签: php web-services soap


【解决方案1】:

此错误的一个常见原因似乎是用于信封的命名空间错误。见http://www.w3.org/TR/soap12-part1/#faultcodeshttp://www.w3.org/TR/soap12-part1/#vmfault

【讨论】:

    【解决方案2】:

    WSDL 和 SOAP 都有好几个版本,PHP 好像有issues 至少有WSDL 2.0

    检查 WSDL 文件的标题以验证 FedEx 想要什么(他们可能为不同的版本提供多个 Web 服务)并使用嗅探器检查您的脚本实际发送的内容。

    【讨论】:

      【解决方案3】:

      此错误意味着您没有得到客户端库可以识别的有效 SOAP 信封。换句话说,服务器返回的 XML 通常看起来像这样:

      <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
          <soapenv:Body>
              ...
          </soapenv:Body>
      </soapenv:Envelope>
      

      ...看起来像别的东西。

      除其他原因外,如果服务器严重崩溃并发送随机错误页面,或者端点 URL 根本不是 SOAP 服务器,则可能发生这种情况。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-21
        • 2020-10-01
        • 2018-09-04
        • 2020-08-09
        • 1970-01-01
        • 1970-01-01
        • 2021-07-26
        • 2014-11-26
        相关资源
        最近更新 更多