PHP SoapClient错误 - 缺少<fault> </fault>的名称

时间:2010-06-02 14:05:19

标签: php soap wsdl

我正在尝试使用SoapClient将PHP正确连接到WSDL,它连接(如在查找WSDL中)可以,但后来给了我以下错误:

Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Missing name for <fault> of 'invokeService'

PHP代码如下:

$client = new SoapClient("wsdl.wsdl");

WSDL文件中失败的XML如下:

  <portType name="invokePort"> 
    <operation name="invokeService"> 
      <input message="wsdlns:invokeRequest"/> 
      <output message="wsdlns:invokeResponse"/> 
      <fault message="soap:fault"></fault> 
    </operation> 
  </portType> 

知道什么是错的吗?

由于

1 个答案:

答案 0 :(得分:1)

嗯,Missing name for <fault>听起来很不言自明。您是否尝试将属性“name”添加到fault元素?

更新:关于Missing <message> with name 'soap:fault'错误,您可以尝试以下操作:

<message name="MyFaultName"/>
<portType>
    <!-- ... -->
    <fault name="MyFaultName">
        <soap:fault name="MyFaultName" use="literal"/>
    <fault>
</portType>

不确定它是否会进一步抱怨其他问题。手动创建WSDL真是太痛苦了,我建议你寻找从源代码为你生成它的some tool