“looks like we got no XML document”——使用Zend Studio9生成WSDL遇到的错误
最近想学习下PHP的SOAP,于是下载了最新版的Zend Studio,因为它可以自动为我们生成wsdl文件。在学习的过程中,遇到了一个错误,
Fatal error: Uncaught SoapFault exception: [Client] looks like we got no XML document in D:\wamp\test\soap\soapclient.php:5 Stack trace: #0 D:\wamp\test\soap\soapclient.php(5): SoapClient->__call('Add', Array) #1 D:\wamp\test\soap\soapclient.php(5): SoapClient->Add(1, 2) #2 {main} thrown in D:\wamp\test\soap\soapclient.php on line 5
由于这个wsdl文件是自动生成的,查看了源码之后才发现,在这个wsdl文件的末尾处,soap:address的location熟悉没有指向文件具体位置,生成的时候只是http://localhost/test/soap,而真正需要指向的是http://localhost/test/soap/soapserver.php这个文件。
如下:
<wsdl:service name="soapTest"> <wsdl:port binding="tns:soapTestSOAP" name="soapTestSOAP"> <soap:address location="http://localhost/test/soap"/> </wsdl:port> </wsdl:service>