There are only a few legitimate "codes" that a SOAP fault can have and be understood by most clients in accordance with the protocol. You can't just pass in, for example, a database error code or you'll get a fatal error like "SoapFault::__construct(): Invalid parameters. Invalid fault code."
The ones you generally want to use are "Sender" where you've gotten bad parameters, or "Receiver" where the server has gotten an error for some reason.
See here:
http://www.w3.org/TR/soap12-part1/#faultcodes
SoapFault::SoapFault
(PHP 5 >= 5.0.1)
SoapFault::SoapFault — SoapFault コンストラクタ
説明
SoapFault::SoapFault
( string $faultcode
, string $faultstring
[, string $faultactor
[, string $detail
[, string $faultname
[, string $headerfault
]]]] )
このクラスは、PHP ハンドラから SOAP フォールトレスポンスを送信した場合に有用です。 faultcode , faultstring , faultactor および details は SOAP フォールトの標準的な要素です。
パラメータ
- faultcode
-
SoapFault のエラーコード
- faultstring
-
SoapFault のエラーメッセージ
- faultactor
-
エラーの原因となったアクターを識別する文字列
- detail
-
エラーの原因についての詳細な情報
- faultname
-
WSDL からの厳密なフォールトエンコーディングを取得するために利用可能
- headerfault
-
レスポンスヘッダにおいて SOAP ハンドラがエラーの報告処理を行っている間に利用可能
例
例1 いくつかの例
<?php
function test($x)
{
return new SoapFault("Server", "Some error message");
}
$server = new SoapServer(null, array('uri' => "http://test-uri/"));
$server->addFunction("test");
$server->handle();
?>
SOAP フォールトを投げるために PHP の例外機構を使用することができます。
例2 いくつかの例
<?php
function test($x)
{
throw new SoapFault("Server", "Some error message");
}
$server = new SoapServer(null, array('uri' => "http://test-uri/"));
$server->addFunction("test");
$server->handle();
?>
SoapFault::SoapFault
del at babel dot com dot au
14-Jul-2008 04:10
14-Jul-2008 04:10
