2012-12-13 92 views
0

我是Zend的新手,並盡我所能利用Zend framework2,Dojo和Zend Json服務器學習和構建Web應用程序。我用dojo組件寫了一個html頁面。我的頁面首先完全下載(此時沒有json調用)。我添加了一個onBlur函數,它可以調用Json服務器進行響應,並分析加載國家filters的響應。 Dojo filterselect使用json rpc客戶端,它調用服務器並返回數據。如果我的數據(記錄在數據庫中)高達60條記錄,那麼它工作得很好。但是如果這個列表超過了60條記錄(可能是200條以上的記錄),zend服務器會拋出一個異常(作爲響應,它包含json數據+解析失敗的異常)「警告:無法修改頭信息 - 已經發送頭在「ZF2 JSON數據大小問題

Json server details 
    public function populatelistAction() { 
    $class = "MO\Model\MOGuest"; 
    $server = new Server(); 
    $server->setClass($class); 
    if ('GET' == $_SERVER['REQUEST_METHOD']) { 
    $server->setTarget('populatelist')->setEnvelope(Smd::ENV_JSONRPC_2); 
    $smd = $server->getServiceMap(); 
    // Set Dojo compatibility: 
    $smd->setDojoCompatible(true); 
    header('Content-Type: application/json'); 
    echo $smd; 
    return $this->getResponse(); 
    } else { 
    //$server->handle(); 
    } 
    $server->handle(); 
    return $this->getResponse(); 
} 

請指導我這個問題,因爲我無能,因爲它的工作溫度高達60 REC和失敗,更多的則是,下面是我得到的例外。這是一個錯誤或我錯過任何事。我驗證它沒有任何與道場做的直接調用服務(使用RESTClient實現Firefox的插件)也失敗。

{"id":"208","catcode":"SR"},{"id":"209","catcode":"SJ"},{"id":"210","catcode":"SZ"},{"id":"211","catcode":"SE"},{"id":"212","catcode":"CH"},{"id":"213","catcode":"SY"},{"id":"214","catcode":"TW"},{"id":"215","catcode":"TJ"},{"id":"216","catcode":"TZ"},{"id":"217","catcode":"TH"},{"id":"218","catcode":"TL"},{"id":"219","catcode":"TG"},{"id":"220","catcode":"TK"},{"id":"221","catcode":"TO"},{"id":"222","catcode":"TT"},{"id":"223","catcode":"TN"},{"id":"224","catcode":"TR"},{"id":"225","catcode":"TM"},{"id":"226","catcode":"TC"},{"id":"227","catcode":"TV"},{"id":"228","catcode":"UG"},{"id":"229","catcode":"UA"},{"id":"230","catcode":"AE"},{"id":"231","catcode":"US"},{"id":"232","catcode":"UM"},{"id":"233","catcode":"UY"},{"id":"234","catcode":"UZ"},{"id":"235","catcode":"VU"},{"id":"236","catcode":"VE"},{"id":"237","catcode":"VN"},{"id":"238","catcode":"VG"},{"id":"239","catcode":"VI"},{"id":"240","catcode":"GB"},{"id":"241","catcode":"WF"},{"id":"242","catcode":"EH"},{"id":"243","catcode":"YE"},{"id":"244","catcode":"ZM"},{"id":"245","catcode":"ZW"}]],"id":"1"}<br /> 
<font size='1'><table class='xdebug-error' dir='ltr' border='1' cellspacing='0' cellpadding='1'> 
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>(!)</span> Warning: Cannot modify header information - headers already sent by (output started at C:\Users\amsh\Documents\NetBeansProjects\myoffice\vendor\zendframework\zendframework\library\Zend\Json\Server\Server.php:182) in C:\Users\amsh\Documents\NetBeansProjects\myoffice\vendor\zendframework\zendframework\library\Zend\Http\PhpEnvironment\Response.php on line <i>62</i></th></tr> 
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr> 
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr> 
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0236</td><td bgcolor='#eeeeec' align='right'>644056</td><td bgcolor='#eeeeec'>{main}()</td><td title='C:\Users\amsh\Documents\NetBeansProjects\myoffice\public\index.php' bgcolor='#eeeeec'>..\index.php<b>:</b>0</td></tr> 
<tr><td bgcolor='#eeeeec' align='center'>2</td><td bgcolor='#eeeeec' align='center'>0.7178</td><td bgcolor='#eeeeec' align='right'>9273664</td><td bgcolor='#eeeeec'>Zend\Mvc\Application->run()</td><td title='C:\Users\amsh\Documents\NetBeansProjects\myoffice\public\index.php' bgcolor='#eeeeec'>..\index.php<b>:</b>12</td></tr> 
<tr><td bgcolor='#eeeeec' align='center'>3</td><td bgcolor='#eeeeec' align='center'>1.8114</td><td bgcolor='#eeeeec' align='right'>11844912</td><td bgcolor='#eeeeec'>Zend\EventManager\EventManager->trigger()</td><td title='C:\Users\amsh\Documents\NetBeansProjects\myoffice\vendor\zendframework\zendframework\library\Zend\Mvc\Application.php' bgcolor='#eeeeec'>..\Application.php<b>:</b>303</td></tr> 
<tr><td bgcolor='#eeeeec' align='center'>4</td><td bgcolor='#eeeeec' align='center'>1.8114</td><td bgcolor='#eeeeec' align='right'>11845120</td><td bgcolor='#eeeeec'>Zend\EventManager\EventManager->triggerListeners()</td><td title='C:\Users\amsh\Documents\NetBeansProjects\myoffice\vendor\zendframework\zendframework\library\Zend\EventManager\EventManager.php' bgcolor='#eeeeec'>..\EventManager.php<b>:</b>208</td></tr> 
<tr><td bgcolor='#eeeeec' align='center'>5</td><td bgcolor='#eeeeec' align='center'>1.8138</td><td bgcolor='#eeeeec' align='right'>11847840</td><td bgcolor='#eeeeec'><a href='http://www_php_net/call_user_func' target='_new'>call_user_func</a> 
()</td><td title='C:\Users\amsh\Documents\NetBeansProjects\myoffice\vendor\zendframework\zendframework\library\Zend\EventManager\EventManager.php' bgcolor='#eeeeec'>..\EventManager.php<b>:</b>468</td></tr> 
<tr><td bgcolor='#eeeeec' align='center'>6</td><td bgcolor='#eeeeec' align='center'>1.8138</td><td bgcolor='#eeeeec' align='right'>11847872</td><td bgcolor='#eeeeec'>Zend\Mvc\View\SendResponseListener->sendResponse()</td><td title='C:\Users\amsh\Documents\NetBeansProjects\myoffice\vendor\zendframework\zendframework\library\Zend\EventManager\EventManager.php' bgcolor='#eeeeec'>..\EventManager.php<b>:</b>468</td></tr> 
<tr><td bgcolor='#eeeeec' align='center'>7</td><td bgcolor='#eeeeec' align='center'>1.8139</td><td bgcolor='#eeeeec' align='right'>11847872</td><td bgcolor='#eeeeec'>Zend\Http\PhpEnvironment\Response->send()</td><td title='C:\Users\amsh\Documents\NetBeansProjects\myoffice\vendor\zendframework\zendframework\library\Zend\Mvc\View\SendResponseListener.php' bgcolor='#eeeeec'>..\SendResponseListener.php<b>:</b>71</td></tr> 
<tr><td bgcolor='#eeeeec' align='center'>8</td><td bgcolor='#eeeeec' align='center'>1.8139</td><td bgcolor='#eeeeec' align='right'>11847872</td><td bgcolor='#eeeeec'>Zend\Http\PhpEnvironment\Response->sendHeaders()</td><td title='C:\Users\amsh\Documents\NetBeansProjects\myoffice\vendor\zendframework\zendframework\library\Zend\Http\PhpEnvironment\Response.php' bgcolor='#eeeeec'>..\Response.php<b>:</b>100</td></tr> 
<tr><td bgcolor='#eeeeec' align='center'>9</td><td bgcolor='#eeeeec' align='center'>1.8142</td><td bgcolor='#eeeeec' align='right'>11848000</td><td bgcolor='#eeeeec'><a href='http://www/php/net/header' target='_new'>header</a> 
()</td><td title='C:\Users\amsh\Documents\NetBeansProjects\myoffice\vendor\zendframework\zendframework\library\Zend\Http\PhpEnvironment\Response.php' bgcolor='#eeeeec'>..\Response.php<b>:</b>62</td></tr> 
</table></font>" 
+0

可以任何一個請提供一些關於輸入的提示 – adang

回答

0

我堅信這是一個缺陷我已經爲此創建了一個修復程序。只有Zend團隊會確認問題並予以解決。遺憾的是截至目前還沒有人看到這個問題。

更多詳細信息在下面的鏈接:如果您打算使用此修復程序,那麼你必須確保修復是正確的,因爲我不是保證修復的合適人選。對於那個conatct Zend框架團隊。由於這對我來說只是Zend初學者的修補程序,所以修補程序必須通過Zend團隊的認證或提供一些更好的解決方案。 https://github.com/zendframework/zf2/issues/3225