从Web应用程序调用存储过程Jasper报告不返回任何数据

时间:2015-06-19 02:33:45

标签: java jsp stored-procedures jasper-reports

我有一个Jasper报告,它是从我的网络应用程序调用并执行存储过程来获取其数据。存储过程适用于SQL Developer和iReports Studio(5.1),但在构建和部署之后,当我从JSP前端调用报表时,它只返回一个空白的pdf。

日志文件表明参数已正确发送,但Jasper库的JRVerticalFiller类没有数据。

conn  = dataSource.getConnection();

parameters.put("REPORT_CONNECTION", conn);
parameters.put("SUBREPORT_DIR", propsUtil.getReportsRootpath());

JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, conn);

JRPdfExporter jrPdfExporter = new JRPdfExporter();

jrPdfExporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
//etc ...

jrPdfExporter.exportReport();

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:0)

我找到了问题的原因。存储过程中定义的参数名称,JRXML和Java类中的参数名称都必须相同。在我的例子中,Java类使用MIN_DATE和MAX_DATE,而storedproc和JRXML使用minDate和maxDate。

难怪数据没有被退回!