Query with pear SOAP and SOAP_Fault
| From: | Chris Covell | Date: | Mon, 19 Jul 2004 14:47:41 +0000 |
| Subject: | Query with pear SOAP and SOAP_Fault | ||
| Groups: | php.pear.general | ||
| Request: | Send a blank email to pear-general+get-13748@lists.php.net to get a copy of this message | ||
Hello guys,
I have a query with pear soap and SOAP_Fault, I wonder if anyone has
an answer...
As a bit of background, I am using pear SOAP 0.8RC3 beta under php-4.3.4-1.1.
I have a soap server process that works fine ! I have got a client
that connects to it fine also. I have adopted the technique of using
the dispatch_map so that a wsdl is created automagically:
$this->__dispatch_map['request'] =
array( 'in' => array('input' => 'string'),
'out' => array('return string' =>
'string'),
);
As you can see I have defined in and out parameters as strings.
Now, I have a customer connecting to this server using a Java client.
He has built his client based on my wsdl. He wants me to return errors
as soap faults. I am doing it like this:
$fault = new SOAP_Fault('Does not exist', '99');
return $fault->message();
The trouble is that he is seeing the SOAP fault data, but it is
wrapped up in a string, this is what he describes:
"In case of error I expect your service to return something like this:
<http>
<soap:fault/>
</http>
But actually your service is returning something like this:
<http>
<soap:return>
<soap:fault/gt&;
</soap:return>
</http>
The SOAP Fault is actually "masked" inside a normal result. In my
opinion you have do make a little change in your WSDL to define the
possible returned faults."
So my question is:
How do I return a soap fault in the way he describes ? Can I define a
"fault" out in my dispatch map -> wsdl ?
Hopefully you can help me !
Chris...