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

 

1 与 report4.jar 包不匹配

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

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

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

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

4 主子表打印时,找不到子表
主子表打印,找不到子表,也会报这个错。
检查子表的路径,有些比较隐蔽的错,如:将路径中 "/“写成了”\"。

5 api 读取文件的方式不对
客户的读取输入流的源码: InputStream fis=application.getResourceAsStream(reportFileHome+rep

ort); ObjectInputStream ois = new ObjectInputStream(fis); ReportDefine rd = (ReportDefine)ois.readObject(); 修改为 InputStream fis=application.getResourceAsStream(reportFileHome+report); ReportDefine rd=(ReportDefine)ReportUtils.read(fis); 即可。