我试图让PHP使用SoapClient正确地连接到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> 你知道怎么回事吗?
谢谢
发布于 2010-06-02 14:23:08
嗯,Missing name for <fault>听起来很清楚。您是否尝试向错误元素添加属性"name“?
更新:有关Missing <message> with name 'soap:fault'错误的,您可以尝试以下操作:
<message name="MyFaultName"/>
<portType>
<!-- ... -->
<fault name="MyFaultName">
<soap:fault name="MyFaultName" use="literal"/>
<fault>
</portType>不过,不确定它不会再抱怨其他问题了。手动创建WSDL是一件很痛苦的事情,我建议您寻找从源代码中为您生成WSDL的一些 工具。
https://stackoverflow.com/questions/2958454
复制相似问题