使用jasper生成文件时报错Error loading object from file

left9 2011-12-29 04:01:13
实在是搞不定了,纠结几天也找不出来什么原因。
我的servlet代码如下:

String filename=request.getParameter("FileName");
System.out.println("信息 : 报表文件路径:"+context.getRealPath(filename));
File reportFile=new File(context.getRealPath(filename));//能找到.jasper文件,路径没有问题
JasperPrint jasperPrint = null;
try{
//加载已经编译的报表(.jasper文件)
JasperReport jasperReport = (JasperReport)JRLoader.loadObject(reportFile.getPath());/*在这一步报错*/
//填充数据到报表文件
jasperPrint = JasperFillManager.fillReport(jasperReport,parameters,conn);
session.setAttribute("jasperPrint", jasperPrint);
System.out.println("信息 : jasperPrint.name="+jasperPrint.getName());
}
catch (JRException e){}

报错为
java.io.StreamCorruptedException:invalid stream header:3C68746D
at java.io.ObjectInputStream.readStreamHeader(Unknown Source)
at java.io.ObjectInputStream.<int>(Unknown Source)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:137)
at EmbeddedViewerApplet.init(EmbeddedViewerApplet.java:70)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
NESTED BY:
net.sf.jasperreports.engine.JRException:Error loading object from URL:http://127.0.0.1/basic/.....
at net.sf.jasperreports.engine.utilJRLoader.loadObject(JRLoader.java:142)
at EmbeddedViewerApplet.init(EmbeddedViewerApplet.java:70)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by:javaio.StreamCorruptedException:invalid stream header:3C68746D
at java.io.ObjectInputStream.readStreamHeader(Unknown Source)
at java.io.ObjectInputStream.<int>(Unknown Source)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:137)
......more


servlet运行系统中原有的jasper文件没有问题,根据系统jar包看系统中原来的报表大概是用1.0.1的jasperreport版本开发的。我现在开发的报表用的是iReport4.1.3,给系统中jar包也已经换成了4.1.3也不行一样报错。

哪位大侠帮忙分析下到底是什么原因,非常感谢!
...全文
2217 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
陈客 2013-08-23
  • 打赏
  • 举报
回复
楼主,我也碰到了与你一样的问题,但是我的版本都是一样的呀, 开发的报表用的是iReport5.1.0 我servlet程序里面的也是 jasperreports-5.1.0.jar 这个jar包 ,这都对应上了,为什么还会有这个问题呢??? 楼主求解释...
left9 2013-01-11
  • 打赏
  • 举报
回复
引用 1 楼 zilin110 的回复:
顶下.我也遇到LZ一样的问题.LZ解决了没.
引用 2 楼 dever2011 的回复:
同上也遇到了这个问题,求解决办法》。。。
换成了与原系统中版本一致的低版本的iReport重新做了个报表文件出来就没问题了。。。。。。
dever2011 2012-09-28
  • 打赏
  • 举报
回复
同上也遇到了这个问题,求解决办法》。。。
zilin110 2012-04-06
  • 打赏
  • 举报
回复
顶下.我也遇到LZ一样的问题.LZ解决了没.

81,114

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧