PHP – crea e chiama il servizio web SOAP – errore

Ogni volta che provo a fare una chiamata al mio webservice, attraverso il wsdl, ottengo il messaggio di errore mostrato qui. Penso che sia probabilmente un problema all'interno della definizione WSDL, perché non sono sicuro di quello che sto facendo all'interno della definizione WSDL per cominciare:

[22-Sep-2011 18:54:46] PHP Fatal error: Uncaught SoapFault exception: [HTTP] Not Found in /www/zendserver/htdocs/dev/csc/request.php:4 Stack trace: #0 [internal function]: SoapClient->__doRequest('<?xml version="...', 'http://192.168....', 'http://www.exam...', 1, 0) #1 [internal function]: SoapClient->__call('EchoText', Array) #2 /www/zendserver/htdocs/dev/csc/request.php(4): SoapClient->EchoText('test') #3 {main} thrown in /www/zendserver/htdocs/dev/csc/request.php on line 4 

Ho un servizio web molto semplice, che si trova all'indirizzo: http://192.168.1.2:10088/csc/csc.php

 <?php function EchoText($text){ return "ECHO: ".$text; } $server = new SoapServer(null, arrays('uri' => "http://192.168.1.2:10088/csc/csc.php")); $server->addFunction('EchoText'); $server->handle(); ?> 

Ho una pagina di interface, che è ciò che accedo e quindi get l'errore mostrato sopra, che si trova a: http://192.168.1.2:10088/csc/request.php

 <?php $client = new SoapClient("http://192.168.1.2:10088/csc/NewWSDLFile.wsdl"); $result = $client->EchoText("test"); echo $result; >? 

Ho il mio WSDL, che si trova all'indirizzo: http://192.168.1.2:10088/csc/NewWSDLFile.wsdl

 <?xml version="1.0" encoding="UTF-8" standalone="no"?> <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://192.168.1.2:10088/csc/NewWSDLFile.wsdl" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="NewWSDLFile" targetNamespace="http://192.168.1.2:10088/csc/NewWSDLFile.wsdl"> <wsdl:types> <xsd:schema targetNamespace="http://192.168.1.2:10088/csc/NewWSDLFile.wsdl"> <xsd:element name="EchoText"> <xsd:complexType> <xsd:sequence> <xsd:element name="in" type="xsd:string"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="EchoTextResponse"> <xsd:complexType> <xsd:sequence> <xsd:element name="out" type="xsd:string"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema> </wsdl:types> <wsdl:message name="EchoTextRequest"> <wsdl:part element="tns:EchoText" name="parameters"/> </wsdl:message> <wsdl:message name="EchoTextResponse"> <wsdl:part element="tns:EchoText" name="parameters"/> </wsdl:message> <wsdl:portType name="NewWSDLFile"> <wsdl:operation name="EchoText"> <wsdl:input message="tns:EchoTextRequest"/> <wsdl:output message="tns:EchoTextResponse"/> </wsdl:operation> </wsdl:portType> <wsdl:binding name="NewWSDLFileSOAP" type="tns:NewWSDLFile"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="EchoText"> <soap:operation soapAction="http://192.168.1.2:10088/csc/NewWSDLFile/EchoText"/> <wsdl:input> <soap:body use="literal"/> </wsdl:input> <wsdl:output> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="NewWSDLFile"> <wsdl:port binding="tns:NewWSDLFileSOAP" name="NewWSDLFileSOAP"> <soap:address location="http://192.168.1.2:10088/csc/csc.php"/> </wsdl:port> </wsdl:service> </wsdl:definitions> 

AGGIORNARE..

Sono stato in grado di get informazioni più dettagliate sul messaggio di errore eseguendo un try catch e print_r ($ e); … ecco il messaggio di errore dettagliato:

 SoapFault Object ( [message:protected] => Not Found [string:private] => [code:protected] => 0 [file:protected] => /www/zendserver/htdocs/dev/csc/request.php [line:protected] => 7 [trace:private] => Array ( [0] => Array ( [function] => __doRequest [class] => SoapClient [type] => -> [args] => Array ( [0] => [1] => http://192.168.1.2:10088/csc/csc.wsdl [2] => http://www.example.org/NewWSDLFile/EchoText [3] => 1 [4] => 0 ) ) [1] => Array ( [function] => __call [class] => SoapClient [type] => -> [args] => Array ( [0] => EchoText [1] => Array ( [0] => test ) ) ) [2] => Array ( [file] => /www/zendserver/htdocs/dev/csc/request.php [line] => 7 [function] => EchoText [class] => SoapClient [type] => -> [args] => Array ( [0] => test ) ) ) [faultstring] => Not Found [faultcode] => HTTP ) 

SoapFault => Not Found è che SoapClient non può raggiungere il server.

192.168.1.2 è un indirizzo IP locale, il server Web è anche sulla networking locale? Altrimenti, questo è il motivo per cui il tuo cliente non funziona.