0
我想設置在PHP SOAP服務器。 這似乎沒有WSDl工作正常。當我點服務器的WSDL它給了我下面的錯誤:PHP - WSDL:找不到任何可用的綁定服務
Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Could not find any usable binding services in WSDL.
...我已經尋找可能的解決方案的網絡,但沒有答案的幫助。
按照我的測試WSDL:
<?xml version='1.0' encoding='UTF-8'?>
<definitions name="WSDLExample" targetNamespace="urn:WSDLExample" xmlns:typens="urn:WSDLExample" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/">
<message name="doHello">
<part name="yourName" type="xsd:string"></part>
</message>
<message name="doHelloResponse">
<part name="doHelloReturn" type="xsd:string"></part>
</message>
<message name="index"></message>
<message name="indexResponse">
<part name="indexReturn" type="xsd:boolean"></part>
</message>
<portType name="ApiPortType">
<operation name="doHello">
<documentation>Gives your name back</documentation>
<input message="typens:doHello"></input>
<output message="typens:doHelloResponse"></output>
</operation>
<operation name="index">
<documentation>This is awesome1</documentation>
<input message="typens:index"></input>
<output message="typens:indexResponse"></output>
</operation>
</portType>
<binding name="ApiBinding" type="typens:ApiPortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"></soap:binding>
<operation name="doHello">
<soap:operation soapAction="urn:ApiAction"></soap:operation>
<input>
<soap:body namespace="urn:WSDLExample" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"></soap:body>
</input>
<output>
<soap:body namespace="urn:WSDLExample" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"></soap:body>
</output>
</operation>
<operation name="index">
<soap:operation soapAction="urn:ApiAction"></soap:operation>
<input>
<soap:body namespace="urn:WSDLExample" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"></soap:body>
</input>
<output>
<soap:body namespace="urn:WSDLExample" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"></soap:body>
</output>
</operation>
</binding>
<service name="WSDLExampleService">
<port name="ApiPort" binding="typens:ApiBinding">
<soap:address></soap:address>
</port>
</service>
</definitions>
謝謝!
編輯:
我發現這個問題,它是設置沒有正確的服務。 現在的錯誤是:
[WSDL] SOAP的錯誤:解析WSDL:與
沒有相關聯的位置,我想這仍然是一些相關的服務。
這裏是服務器代碼:
error_reporting(0);
require_once(APPPATH . "/libraries/wsdl/WSDLCreator.php"); //Path to the library
$test = new WSDLCreator("WSDLExample", "http://localhost/soapWrap/wsdl");
$test->setClassesGeneralURL("http://localhost/soapWrap");
$test->includeMethodsDocumentation(TRUE);
$test->addFile(APPPATH . "controllers/api.php");
$test->addURLToClass("api", 'http://localhost/soapWrap/');
$test->addURLToTypens("XMLCreator", "http://localhost/soapWrap");
$test->createWSDL();
$test->printWSDL(true); // print with headers
我也更新了新的WSDL。
謝謝。
你可以發佈你調用wsdl的代碼嗎? – Matheno
剛剛用新信息編輯了mex。我現在得到一個不同的錯誤。之前的問題與服務標籤有關。謝謝 – Andrea
我已經解決了這個問題。我會在幾個小時內回答這個問題,因爲現在由於堆棧溢出規則,我無法正確回答。 – Andrea