首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Exception >

net.sf.jasperreports.engine.JRException: Error loading object from file

2014-01-26 
net.sf.jasperreports.engine.JRException: Error loading object from file异常:我用Ireport生成一个jrxml

net.sf.jasperreports.engine.JRException: Error loading object from file异常:

我用Ireport生成一个jrxml文件,ireport与jasperreport的版本都是2.0.2,在ireport界面里面是可以查看的,编译也成功了,可是当我在servlet中运行的时候却出现了错误。

jsp文件内容如下 :
<%@ page language="java" pageEncoding="GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Jasper test </title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0"> 
</head>
<body onload="document.forms[0].submit()">
<form action="jasper.pdf" method="get"> </form>
</body>
</html>

我的servlet中的方法如下:
public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
File reportFile = new File(getServletContext().getRealPath("/report/test.jrxml"));
Connection conn = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e3) {
e3.printStackTrace();
}
String url = "jdbc:oracle:thin:@192.168.8.66:1521:idas";
String username = "idastest4";
String pwd = "idastest4";
System.out.println("----------Connect start ");

try {
conn = DriverManager.getConnection(url,username,pwd);

Map reportMap = new HashMap(); 
byte[] bytes = {};

// 产生错误的地方
bytes = JasperRunManager.runReportToPdf(reportFile.getPath(),reportMap,conn);

response.setContentType("application/pdf");
response.setContentLength(bytes.length);

ServletOutputStream sos = response.getOutputStream();
sos.write(bytes,0,bytes.length);
sos.flush();
sos.close();

} catch (JRException e1) {
e1.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if(conn!=null){
try {
conn.close();
System.out.println("----------Connect end ");
} catch (SQLException e) {
e.printStackTrace();
}
}
}

}
-----------------------------
执行jsp时报错如下:
----------Connect start
net.sf.jasperreports.engine.JRException: Error loading object from file : E:\workspace\jasperreports\WebRoot\report\test.jrxml
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:92)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:232)
at net.sf.jasperreports.engine.JasperRunManager.runReportToPdf(JasperRunManager.java:203)
at com.william.jasper.controller.JasperController.service(JasperController.java:45)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.io.StreamCorruptedException: invalid stream header
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:764)         

热点排行