我正在尝试使用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>
知道什么是错的吗?
由于
答案 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>