Edit report at https://bugs.php.net/bug.php?id=51944&edit=1
ID: 51944 Updated by: [email protected] Reported by: scottij at arbor dot net Summary: One-way SOAP requests are not sent, and no error is reported -Status: Feedback +Status: No Feedback Type: Bug Package: SOAP related Operating System: Mac OS X 10.5.8 PHP Version: 5.3.2 Assigned To: dmitry New Comment: No feedback was provided. The bug is being suspended because we assume that you are no longer experiencing the problem. If this is not the case and you are able to provide the information that was requested earlier, please do so and change the status of the bug back to "Open". Thank you. Previous Comments: ------------------------------------------------------------------------ [2010-06-15 11:52:26] [email protected] I can't reproduce it on Linux. I changed the location URL in WSDL file and got the request as expected. May be the issue related to your server configuration. Please try to switch from https:// to http://, try to remove authentication. ------------------------------------------------------------------------ [2010-05-28 18:38:48] scottij at arbor dot net Description: ------------ One-way soap requests appear to fail silently. A one-way soap request is a request which only defines an input message, and has no output message. When making such a soap request, the request is never sent but no errors are generated. The call just returns. My php configure line was: ./configure --with-curl --enable-exif --enable-soap --with-snmp --with-openssl Here is a sample WSDL entry that fails: <definitions name="TestSoap" targetNamespace="urn:TestSoap" xmlns:tns="urn:TestSoap" 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="OneWayRequest"> <part name="oneArg" type="xsd:string"/> </message> <portType name="TestSoapPort"> <operation name="OneWay"> <input message="OneWayRequest"/> </operation> </portType> <binding name="TestSoapBinding" type="tns:TestSoapPort"> <operation name="OneWay"> <soap:operation soapAction="urn:TestSoapAction"/> <input> <soap:body use="encoded" namespace="urn:TestSoap" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </input> </operation> </binding> <service name="TestSoapService"> <port name="TestSoapPort" binding="tns:TestSoapBinding"> <soap:address location="https://127.0.0.1/soap"/> </port> </service> </definitions> Test script: --------------- /* Using the above WSDL */ $user = 'someuser'; $password = 'password'; $client = new SoapClient($wsdl, array( "location" => "https://127.0.0.1/soap", "login" => "$user", "password" => "$password", "trace" => 1, "exceptions" => 0, "authentication" => SOAP_AUTHENTICATION_DIGEST ) ); $result = $client->OneWay('foo'); if(is_soap_fault($result)) { print "SOAP Fault: (faultcode: ($result->faultcode), " . "faultstring: ($result->faultstring))\n"; } else { print_r($result); } exit; Expected result: ---------------- The script should open a connection to the specified soap server and send a request to call the OneWay function. This does not happen. Actual result: -------------- Fails silently -- no error, no backtrace, and no output. ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=51944&edit=1
