2012-05-08 9 views
3

私はこのSoapFaultを取得します。以下の関数を呼び出すと、codewordStemExists()は起動しているSoapServerに接続するSoapClientを作成する必要があります(見つけられたエラーはサーバー側から報告されていません)。SoapFault - 応答後にクラスが見つかりません

private static function initClient() { 
    ini_set("soap.wsdl_cache_enabled", "0"); 
    $classmap = array(
     'CodewordStemExists' => 'CodewordStemExists', 
     'CodewordStemExistsResponse' => 'CodewordStemExistsResponse', 
    ); 
    $client = new \SoapClient("http://..../service.wsdl", array(
     "trace" => true, 
     "exceptions" => true, 
     "classmap" => $classmap 
    )); 
    return $client; 
} 

public static function codewordStemExists($stem) { 
    $client = self::initClient(); 
    try { 
     $req = new CodewordStemExists(); 
     $req->username = "...."; 
     $req->password = "...."; 
     $req->codewordStem = $stem; 

     $res = $client->codewordStemExists($req); 
     return (bool)$res->result; 
    } 
    catch (\SoapFault $e) { 
     var_dump($client->__getLastResponse()); 

} 

/** The result from var_dump: */ 
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://...."> 
<SOAP-ENV:Body> 
    <ns1:CodewordStemExistsResponse><ns1:result>false</ns1:result> 
    </ns1:CodewordStemExistsResponse> 
</SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 

にSoapFault:

Class 'CodewordStemExistsResponse' not found 

CodewordStemExistsResponseがブートストラップで必要とされ、いつでも、それをインスタンス化することが可能です。

誰でもこれまでに見たことがありますか?ありがとう。

+0

私はクライアント側で名前空間を使用していますが、サーバーではありません。何かがうんざりしてしまっています...今すぐ動作します:)ありがとう@hakre – Johannes

答えて

3

適切な名前空間が必要かどうかを確認します。 \vendor\CodewordStemExistsResponse

関連する問題