在JasperReports Server(postgresql)中运行iReport设计的报告时出错

时间:2012-05-21 18:47:11

标签: postgresql jasper-reports ireport jasperserver

我在 iReport 中设计了一个报告,该报告具有直接查询作为主报告和具有另一个简单查询的子报告。两个查询都没有传递给它的任何参数,但是它们都广泛地处理时间戳。

组合报告在 iReport 中运行正常,如果我删除子查询并将其加载到 JasperReports Server ,它们将独立运行。但是,当我尝试运行包含子报告的完整报告时,我收到以下错误和堆栈跟踪:

The server has encountered an error. Please excuse the inconvenience.
Error Message

net.sf.jasperreports.engine.JRRuntimeException: Parameter "DATABASE_TIMEZONE" does not exist.
Error Trace

net.sf.jasperreports.engine.JRRuntimeException: Parameter "DATABASE_TIMEZONE" does not exist. 
at net.sf.jasperreports.engine.query.JRAbstractQueryExecuter.getValueParameter(JRAbstractQueryExecuter.java:606) 
at net.sf.jasperreports.engine.query.JRAbstractQueryExecuter.getValueParameter(JRAbstractQueryExecuter.java:621) 
at com.jaspersoft.jasperserver.api.engine.jasperreports.util.JRTimezoneJdbcQueryExecuter.getValueParameter(JRTimezoneJdbcQueryExecuter.java:150) 
at com.jaspersoft.jasperserver.api.engine.jasperreports.util.JRTimezoneJdbcQueryExecuter.<init>(JRTimezoneJdbcQueryExecuter.java:134) 
at com.jaspersoft.jasperserver.api.engine.jasperreports.util.JRTimezoneJdbcQueryExecuterFactory.createQueryExecuter(JRTimezoneJdbcQueryExecuterFactory.java:50) 
at net.sf.jasperreports.engine.fill.JRFillDataset.createQueryDatasource(JRFillDataset.java:728) 
at net.sf.jasperreports.engine.fill.JRFillDataset.initDatasource(JRFillDataset.java:629) 
at net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:1159) 
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:802) 
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:746) 
at net.sf.jasperreports.engine.fill.JRFillSubreport.fillSubreport(JRFillSubreport.java:640) 
at net.sf.jasperreports.engine.fill.JRSubreportRunnable.run(JRSubreportRunnable.java:59) 
at net.sf.jasperreports.engine.fill.JRThreadSubreportRunner.run(JRThreadSubreportRunner.java:205) 
at java.lang.Thread.run(Thread.java:619)

据我所知,这是一个known bug,但没有受到太多关注。有没有人遇到过这个错误并想出一个解决方法或至少解释发生了什么?

1 个答案:

答案 0 :(得分:0)

这个问题有一个答案:

我的解决方案是修改我的SQL查询以在一个查询中返回所有数据并删除子报告。对于一个相当重要的功能来说,这似乎是一个愚蠢的工作,但它同时起作用。