润乾报表打印报错:invalid stream header的几种情况

来源:互联网 发布:mac 快捷方式 参数 编辑:程序博客网 时间:2024/06/05 19:57

1  与report4.jar包不匹配

将最新的report4.jar包和runqianReport4Applet.jar包,在本地测试,打印正常,再将这两个包发给用户。

 

2  用户的应用中配置了用户的过滤器

用户的过滤器过滤了打印初始化的servlet,也会打印不顺利,报这个错。

去掉过滤打印初始化servlet的过滤器即可。

 

3  报表缓存时间

打印,有时候正常,有时候打印报此错,并且报表展现一段时间后报这种错误的机会大些,那很有肯能是缓存的问题,建议客户增大缓存时间。

在reportconfig.xml中配置

<config>

<name>cachedReportTimeout</name>

<value>120</value>
</config>

 

4 主子表打印时,找不到子表

主子表打印,找不到子表,也会报这个错。

检查子表的路径,有些比较隐蔽的错,如:将路径中"/"写成了"\"。

 

其他情况,可能报这个错误:

 

5  api读取文件的方式不对

客户的读取输入流的源码:
InputStream fis=application.getResourceAsStream(reportFileHome+report);
ObjectInputStream ois = new ObjectInputStream(fis);
ReportDefine rd = (ReportDefine)ois.readObject();
修改为
InputStream fis=application.getResourceAsStream(reportFileHome+report);
 ReportDefine rd=(ReportDefine)ReportUtils.read(fis);
即可。

 

6  4.0的服务器读取3.5的报表文件

4.0报表服务器读取3.5报表设计器设计的报表,也会报这个错。

用3.5的报表服务器读取或升级、迁移报表。

0 0