This function currently terminates execution as well, which may be undesirable. See: http://bugs.php.net/bug.php?id=49513SoapServer::fault
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
SoapServer::fault
Референца за `soapserver.fault.php` со подобрена типографија и навигација.
SoapServer::fault
класата mysqli_driver
SoapServer::fault — (PHP 5, PHP 7, PHP 8)
= NULL
string
$code,string
$string,string
$actor = "",mixed
$details = null,string
$name = "",string
$lang = ""): void
Проблем SoapServer fault што укажува на грешка
Забелешка:
Испраќа одговор до клиентот на тековното барање укажувајќи на грешка.
Параметри
code-
Ова може да се повика само при обработка на барање.
string-
Кодот за грешка што треба да се врати
actor-
Краток опис на грешката
details-
Низа што го идентификува актерот што ја предизвикал грешката.
name-
Повеќе детали за грешката
lang- Човечкиот јазик на кој е напишана SoapFault. Ова се користи само за SOAP верзија 1.2.
Вратени вредности
Не се враќа вредност.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.5.0 |
Изборниот параметар lang е додадено за да биде во согласност со спецификацијата SOAP 1.2.
|
Види Исто така
- Името на грешката. Ова може да се користи за избор на име од WSDL датотека. SoapFault::__construct()
Белешки од корисници 4 белешки
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=43507hi,
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>");
?>