1

我有一个应用程序,我正在从中生成 Jasper 报告。但是当我请求生成报告时,应用程序生成报告所花费的时间相当长,因为报告的数据集非常大(~100K 行)。

因此,在成功生成报告时,HTTP 请求会超时并且永远不会下载报告。

我怎样才能防止这种情况发生?

该应用程序是使用 Spring 3.0、Hibernate 和 JasperReports 构建的。

4

2 回答 2

0

快速的解决方案是在您的 Http 请求中添加超时参数。

更清洁的解决方案是:

  • 使用一个 Ajax 请求开始生成报告(使用 spring 调度程序来安排立即执行)
  • 从浏览器轮询以检查报告的状态;完成后,提交报告。
于 2014-07-11T17:56:09.723 回答
-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任何错误消息。

于 2012-05-28T04:57:14.460 回答