2012-05-18 134 views
1

我有一個應用程序,我正在從它生成Jasper Reports。但是當我提出生成報告的請求時,應用程序生成報告所用的時間很長,因爲報告的數據集非常大(約100K行)。在春季停止HTTP請求超時

因此,在報告成功生成時,HTTP請求會超時並且報告從不下載。

我該如何防止這種情況發生?

該應用程序是使用Spring 3.0,Hibernate和JasperReports構建的。

+0

從哪裏得到超時,服務器或瀏覽器? – Abhilash

+0

隨着超時,您的應用程序中必須生成一些其他異常。請分享該例外和問題代碼,以便任何人都能很好地理解您的問題並回答。 –

+0

其瀏覽器超時。沒有例外,因爲報告最終生成,但不會推送到瀏覽器,因爲請求已超時。 – divinedragon

回答

-1

我的猜測是,你會在20分鐘內到期,請嘗試編輯tomcat6/webapps/jasperserver/WEB-INF/web.xml

<session-config> 
    <!-- Default to 20 minute session timeouts --> 
    <session-timeout>120</session-timeout> 
</session-config> 

還利用「在後臺運行」(右鍵)爲你喜歡的時間表,將保存輸出。

您可以檢查tomcat6/webapps/jasperserver/WEB-INF/logs/jasperserver.log是否有任何錯誤消息。

+0

boooo,誰沒有留下評論恨我的答案。爲了澄清,這個答案僅適用於使用jasper報告UI時的瀏覽器超時 – KCD

0

快速解決方案將爲您的Http請求添加一個超時參數。

的清潔器的解決方案是:

  • 開球報告生成與一個Ajax請求從瀏覽器(使用彈簧調度來調度立即執行)
  • 輪詢來檢查報告的狀態;當發現完成後,提交報告。