我在做报表时,程序总是抛出例外,提示:net.sf.jasperreports.engine.JRException: Error loading object from file : E:\workspace3\HaierNyAbs\WebContent\ReportFile\customReport.jasper
但是那个文件明明是存在的,而且并没有抛出文件不存在的例外
请各位高手指教一下,到底可能由什么原因导致的,谢谢了:~~代码如下:File jasperReport= new File(req.getRealPath("ReportFile/customReport.jasper"));
  
if (!jasperReport.exists())
       throw new JRRuntimeException("File customReport.jasper not found.");try{
//ctmList是一个list
     bytes = 
 JasperRunManager.runReportToPdf(jasperReport,parameters,new JRBeanCollectionDataSource(ctmList));
    
    }catch(JRException e)
          {
    System.out.println(e);
}
    resp.setContentType("application/pdf");
    resp.setContentLength(bytes.length);
    ServletOutputStream ouputStream = resp.getOutputStream();
    ouputStream.write(bytes, 0, bytes.length);
    ouputStream.flush();
    ouputStream.close();

解决方案 »

  1.   

    找到问题了,原来编译和使用的jasperreport版本不一样,但又出现新问题了,总是出现:E SRVE0026E: [Servlet 错误]-[org/apache/commons/beanutils/PropertyUtils]:java.lang.NoClassDefFoundError: org/apache/commons/beanutils/PropertyUtils的错误,可在程序中我没有用到这个类呀,还请做过jasperreport的高人指点指点,谢谢啦~我把try块改成如下的:
    try{
             System.out.println("in try block 1 ~");
       bytes = JasperRunManager.runReportToPdf(reportFile.getPath(), parameters, new JRBeanCollectionDataSource(ctmList));
             System.out.println("in try block 2 ~");
      }catch(JRException e){
         System.out.println(e);
      }结果只打印了第一句,没有打印第二句,而且没有抛出JRException