If you use Adobe Flex, Flash or AIR as SOAP client and are unable to get the error message in case of a soap fault, upgrade to PHP 5.2.6.
Details in:
http://bugs.php.net/bug.php?id=43507
SoapServer::fault
(PHP 5 >= 5.0.1)
SoapServer::fault — SoapServer indica que ocurrió un fallo
Descripción
public void SoapServer::fault
( string
$code
, string $string
[, string $actor
[, string $details
[, string $name
]]] )Envía una respuesta al cliente de la petición actual indicando que ocurrió un error.
Nota:
Solo puede ser llamado cuando se está procesando la petición.
Parámetros
-
code -
El código de error a devolver
-
string -
Una breve descripción del fallo
-
actor -
Una cadena identificando el actor qeu causó el fallo.
-
details -
Más información acerca del fallo
-
name -
Nombre del fallo. Puede ser usado para selecionar un nombre desde el fichero WSDL.
Valores devueltos
No devuelve ningún valor.
Anonymous ¶
4 years ago
brian dot reynolds at risaris dot com ¶
1 year ago
Example Usage:
return new SoapFault( "Client", "foo or bar must be supplied");
SOAP Fault Codes
VersionMismatch: Found an invalid namespace for the SOAP Envelope element
MustUnderstand : An immediate child element of the Header element, with the mustUnderstand attribute set to "1", was not understood
Client: The message was incorrectly formed or contained incorrect information
Server: There was a problem with the server so the message could not proceed
dub357 at gmail dot com ¶
1 year ago
This function also sends a 500 response code back to the client with the request.
This was causing issues with an Apache Axis 1.2 client I had so I instead implemented by own fault handling:
<?php
header("Content-Type: text/xml");
header("Status: 200");
die("<SOAP-ENV:Envelope xmlns:SOAP-ENV=\\"http://schemas.xmlsoap.org/soap/envelope/\\">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>500</faultcode>
<faultstring>".$ex->getMessage())."</faultstring>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>");
?>
Amr Mostafa ¶
3 years ago
This function currently terminates execution as well, which may be undesirable. See: http://bugs.php.net/bug.php?id=49513
