2009-06-23 7 views
2

私は自分のウェブスペースで作成したサーバーとクライアントをテストしています。Zendフレームワークを使用したSOAPサーバーとクライアント(エラーを取得する)

私はServerMapクラスで定義されたシンプルな「れ、testServer」機能を呼び出そうと、私は を取得するには、「私たちは何のXMLドキュメントを持っていないように見えますか」..?

私はクライアント上でgetFunctionsを呼び出し、testServerは有効な関数です。私はすべての例外をキャッチし、__getLastResponseHeaders()と__getLastResponseを呼び出すことを試みました。

ヘッダー:

string(348) "HTTP/1.1 200 OK 
Date: Tue, 23 Jun 2009 19:36:29 GMT 
Server: Apache/2.2.11 (Win32) DAV/2 mod_ssl/2.2.11 OpenSSL/0.9.8i PHP/5.2.9 
X-Powered-By: PHP/5.2.9 
Cache-Control: max-age=1 
Expires: Tue, 23 Jun 2009 19:36:30 GMT 
Vary: Accept-Encoding 
Content-Length: 1574 
Keep-Alive: timeout=5, max=100 
Connection: Keep-Alive 
Content-Type: text/html 
" 

応答:

string(1574) "DEBUG HEADER : This is a cached page ! 

" 

私は、応答のソースHTMLを見れば、その実際:

string(1574) "DEBUG HEADER : This is a cached page !<?xml version="1.0"?> 
<A lot of xml that looks pretty much like my WSDL file that my Zend_Soap_AutoDiscover generates> 

ように起こっていただきましたか!?私はオンラインで検索し、実際には固いソリューションは見つけられませんでした。 私の前に空きスペースがありません。

答えて

0

ブラウザに出力している場合は、xmlの原因が隠れています。ブラウザでは、アンダースコアではないタグは無視されます。

エコーhtmlentities($出力)を行います。 xmlタグを表示します。

+0

が、私の問題は、まだ私は「ドンというスタンド私が望むものを私のサーバーから取り戻すことはできません。ブラウザに印刷したものはすべて__getLastResponse()などから取得したものです – Roman

0

あなたの問題はわかりませんが、SilverlightとWCFのバックエンドSOAPサービスとしてZend Framework 1.8xを使用して私が知っているコードを少し提供することができます。このサービスは、2つの整数を取り、それらを加算して結果を返します。あなたが得ることができるようにシンプル。

コントローラクラスの例:

class SoapController extends Zend_Controller_Action { 

    /* 
    * SOAP server action 
    */ 
    public function indexAction() { 

     $request = $this->getRequest();  
     if ($request->getParam('wsdl') !== null) { 
      $wsdl = new Zend_Soap_AutoDiscover(); 
      $wsdl->setClass('SoapMath'); 
      $wsdl->handle(); 
     } 
     else { 
      $module = $request->getModuleName(); 
      $controller = $request->getControllerName(); 
      $uri = 'http://' . Zend_Registry::get('fullUrl') . '/' . $module . '/' . $controller . '?wsdl'; 
      $server = new Zend_Soap_Server($uri);  
      $server->setClass('SoapMath'); 
      $server->handle(); 
     } 
     exit; 
    } 
} 

そして、実際の作業は、次のように定義される「SoapMath」によって行われます:本当かもしれ

class SoapMath { 

    public function add($a,$b) { 

     return ($a + $b); 
    } 
} 
関連する問題