使用jasper生成文件时报错Error loading object from file
实在是搞不定了,纠结几天也找不出来什么原因。我的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也不行一样报错。
哪位大侠帮忙分析下到底是什么原因,非常感谢! --------------------编程问答-------------------- 顶下.我也遇到LZ一样的问题.LZ解决了没. --------------------编程问答-------------------- 同上也遇到了这个问题,求解决办法》。。。 --------------------编程问答--------------------
换成了与原系统中版本一致的低版本的iReport重新做了个报表文件出来就没问题了。。。。。。 --------------------编程问答-------------------- 楼主,我也碰到了与你一样的问题,但是我的版本都是一样的呀, 开发的报表用的是iReport5.1.0 我servlet程序里面的也是 jasperreports-5.1.0.jar 这个jar包 ,这都对应上了,为什么还会有这个问题呢??? 楼主求解释...
补充:Java , Web 开发