发新话题
打印

该报表缓冲过期,不能访问

该报表缓冲过期,不能访问

在Weblogic9 jdk1.5 部署简表,可以运行报表,但点击导出(excel,pdf,word)都报如下错误,请问是怎么回事,怎么解决?谢谢!(tomcat6.0 jdk1.5 没问题)
UTF-8
<2010-5-7 上午01时07分48秒 CST> <Error> <HTTP> <BEA-101017> <[weblogic.servlet.internal.WebAppServletContext@1d8ac9d - appName: '_auto_generated_ear_', name: 'struts2_demo', context-path: '/struts2_demo'] Root cause of ServletException.
java.lang.Exception: 该报表缓冲过期,不能访问!
        at jatools.server.JobCacher.callJob(JobCacher.java:37)
        at jatools.server.ReportExporter.service(ReportExporter.java:227)
        at jatools.server.JatoolsReportServlet.jrservice(JatoolsReportServlet.java:57)
        at jatools.server.JatoolsReportServlet.doGet(JatoolsReportServlet.java:81)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
        Truncated. see log file for complete stacktrace
>
<2010-5-7 上午01时07分48秒 CST> <Error> <Kernel> <BEA-000802> <ExecuteRequest failed
java.lang.NullPointerException.
java.lang.NullPointerException
        at jsp_servlet._commons.__error._jspService(__error.java:112)
        at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:225)
        at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:127)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
        Truncated. see log file for complete stacktrace
>

[ 本帖最后由 guang502 于 2010-5-7 01:26 编辑 ]

TOP

导致这个问题的原因是服务端的session过期,
请检查:
1. 你是否在浏览到报表的很长时间后,比如半小时,再进行导出,如果这样,会出现session过期.
2. 你可以设置服务器的session过期时限,适当延长,怎么调,可以参考相应web应用服务器的设置文档.

TOP

我的系统服务器用的是resin 报表服务器用的是tomcat 导出时也遇到了这个错误 我应该设置哪个服务器的session时限呢

TOP

到http://jatoolsopenreport.googlecode.com/files/jor.rar这里下载jatools.rar解压,把其中的jatools.jar包替换到你的项目中去
然后修改 \webapps\jor\js目录下的toolsbar.js如下
在代码的最后的地方加上一个alert
this.exportAs = function (as) {

         alert($('#jsettings', this.ct).attr('jobSessionId'));

        window.location = "jatoolsreport?_action_type=export&do_export=1&_job_session_id=" + $('#jsettings', this.ct).attr('jobSessionId') + "&as=" + as;
    };

然后启动你的服务器   浏览报表   把控制台输出的内容  和alert的内容发上来。。。

TOP

alert的内容每次都不同

TOP

发新话题