This function currently terminates execution as well, which may be undesirable. See: http://bugs.php.net/bug.php?id=49513
$code
,$string
,$actor
= "",$details
= null
,$name
= ""Envía una respuesta al cliente de la petición actual, con un mensaje de error.
Nota:
Esto solo es posible durante la ejecución de la petición.
code
El código de error a devolver.
string
Una descripción del error.
actor
Una cadena que identifica al actor involucrado.
details
Más detalles sobre el fallo.
name
El nombre del error. Esto puede ser utilizado para seleccionar un nombre en un archivo WSDL.
No se retorna ningún valor.
This function currently terminates execution as well, which may be undesirable. See: http://bugs.php.net/bug.php?id=49513
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
hi,
to control the fault output one may do the following
/**
* mySoapServer class
*/
class mySoapServer extends SoapServer {
public function __construct($wsdl, array $options = null) {
parent::SoapServer($wsdl, $options);
}
public function fault ($code, $string, $actor = null, $details = null, $name = null) {
throw new SoapFault($code, $string, $actor, $details, $name);
}
}
Use:
try {
$server = new mySoapServer(null, array('uri' => $_SERVER['REQUEST_URI']));
$server->setClass('mySoapAPI');
$server->handle();
} catch (SoapFault $exc) {
echo $exc->getTraceAsString();
}
that how i did this,
hope iot can help some one.
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>");
?>