0

皆さん、こんにちは、私はこれについてすでに 2 週間頭を悩ませています。

問題は、問題なく動作するように見える石鹸サービスを作成したことです。関数を表示するように要求すると、それらすべてが返されます。しかし、サーバーに対して 2 つの関数を呼び出そうとすると、segfault エラーが発生します。

「[お知らせ] 子 pid 13950 終了信号のセグメンテーション違反 (11)」

しかし、2 つの関数を別々に呼び出すと、それらは機能します。私はこれを1週間グーグルで検索し、さまざまなwsdl形式を試しましたが、発生した唯一のことは、phpバグの可能性またはwsdlのエラーでした(バリデーターがエラーを見つけられないため、可能性は低いと思われます)。

ブラウザはこれに応答して私にこれを返します:

エラー 324 (net::ERR_EMPTY_RESPONSE)

私は現在phpバージョン5.3.6を実行しており、5.2.17も試してphpバグの可能性を排除しようとしました。しかし、どちらも同じエラーを出しました。

「すべて問題ないはず」なので、ここのオフィスでは誰もこれを修正する方法を知りません。
誰かが私を正しい方向に導くことができますか?

クライアント: (このコードは apache クラッシュを引き起こします)

ini_set('soap.wsdl_cache_enabled', 0); 
ini_set('soap.wsdl_cache_ttl', 0);
try{
    $soap = new SoapClient("http://localhost/virtueleincasso.wsdl", array("exceptions" => 1));
    $password = $soap->virtuele_incasso_login('user', 'pass');       
    $status = $soap->get_status($password , 1060);
}catch (SoapFault $exception){
    echo $exception->faultstring;
}

サーバー:

ini_set('soap.wsdl_cache_enabled', 0); 
ini_set('soap.wsdl_cache_ttl', 0);
$server = new SoapServer(DIR_ROOT."/virtueleincasso.wsdl");
$server->setClass('PP_Api');
$server->handle();
die();

解決策: die 関数を使用して、空の文字列を返すサーバー関数を停止しました。これを終了関数に変更して修正しました。

4

1 に答える 1