2014-11-05 173 views
1

我想在我的Java Web应用程序中使用Jasper获取PDF报告,但我面临空指针异常,我无法找到哪个是错误。Jreport JasperRunManager.runReportToPdfStream空指针异常

这里我下面的代码:

private void caricaReport() { 
    try{ 
     InputStream is = getClass().getResourceAsStream("reports/miooperearte.jasper"); 


     File OutDir = new File(outputDir); 


     File outDir = new File(outputDir); 
     outDir.mkdirs(); 
     OutputStream os = new FileOutputStream(new File(outDir, "testReportNadia.pdf")); 

     HashMap parameterMap = new HashMap(); 
     parameterMap.put("immagini_base_dir", "/Applications/MAMP/htdocs/Dboperearte/app/webroot/images/"); 


     Collection data = leggiOpere(); 

     JRBeanCollectionDataSource dataSource = new JRBeanCollectionDataSource(data,false); 

      JasperRunManager.runReportToPdfStream(is, os, parameterMap, dataSource); 

    } 
    catch (Exception e) { 
      e.printStackTrace(); 
    } 
} 

变量“是”,“操作系统”,“parameterMap的”和“数据源”都充满,异常不显示是空的问题只能说空指针例外...

任何想法可以帮助我解决或发现问题?

感谢

+0

异常的堆栈跟踪应该告诉你问题出在哪一行。还应该尝试使用调试器来遍历代码并检查每个变量以查看其值。 – codebox 2014-11-05 14:24:55

+0

这是问题... stacktrace不显示任何东西:(..并在调试最后一行运行是JasperRunManager.runReportToPdfStream(是,os,parameterMap,dataSource);之后,在异常但所有变量都被正确填充 – NadiaUl 2014-11-05 14:28:45

+0

在报告中打印你发送的数据收集实例,如果有任何字段为空,它将显示空指针异常 – user1791574 2014-11-06 07:49:04

回答

0

我猜想,parameterMap不包含的东西,在JasperRunManager期待中的条目 - 确保你不会从那里缺少任何值。