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:
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>");
SoapServer::fault
(PHP 5 >= 5.0.1)
SoapServer::fault — エラーを示す SoapServer フォールト を発行する
説明
public void SoapServer::fault
( string $code
, string $string
[, string $actor
[, string $details
[, string $name
]]] )
現在のリクエストに対するレスポンスとして、エラーを表す内容をクライアントに送信します。
注意:
これは、リクエストを処理する際にのみコールされます。
パラメータ
- code
-
返したいエラーコード。
- string
-
エラーについての簡単な説明。
- actor
-
フォールトを引き起こしたアクターをあらわす文字列。
- details
-
フォールトについての詳細。
- name
-
フォールトの名前。これは WSDL ファイルにある名前を使うことができます。
返り値
値を返しません。
dub357 at gmail dot com
09-Feb-2012 05:01
Amr Mostafa
09-Sep-2009 03:16
This function currently terminates execution as well, which may be undesirable. See: http://bugs.php.net/bug.php?id=49513
Anonymous
16-Jul-2008 09:12
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
