在JasperReports服务器(postgresql)中运行iReport设计的报表时出错

在JasperReports服务器(postgresql)中运行iReport设计的报表时出错,postgresql,jasper-reports,ireport,jasperserver,Postgresql,Jasper Reports,Ireport,Jasperserver,我在iReport中设计了一个报表,它有一个直接的查询作为主报表,还有一个带有另一个简单查询的子报表。这两个查询都没有传递任何参数,但是它们都广泛地处理时间戳 组合报表在iReport中运行良好,如果我删除子查询并将两者加载到JasperReports服务器中,它们将独立运行。但是,当我尝试运行包含子报告的完整报告时,会出现以下错误和堆栈跟踪: The server has encountered an error. Please excuse the inconvenience. Error

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

组合报表在iReport中运行良好,如果我删除子查询并将两者加载到JasperReports服务器中,它们将独立运行。但是,当我尝试运行包含子报告的完整报告时,会出现以下错误和堆栈跟踪:

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)
服务器遇到错误。请原谅给您带来的不便。
错误消息
net.sf.jasperreports.engine.JRRuntimeException:参数“数据库\时区”不存在。
错误跟踪
net.sf.jasperreports.engine.JRRuntimeException:参数“数据库\时区”不存在。
位于net.sf.jasperreports.engine.query.jractQueryExecuter.getValueParameter(jractQueryExecuter.java:606)
位于net.sf.jasperreports.engine.query.jractQueryExecuter.getValueParameter(jractQueryExecuter.java:621)
在com.jaspersoft.jasperserver.api.engine.jasperreports.util.JRTimezoneJdbcQueryExecuter.getValueParameter(JRTimezoneJdbcQueryExecuter.java:150)
位于com.jaspersoft.jasperserver.api.engine.jasperreports.util.JRTimezoneJdbcQueryExecuter.(JRTimezoneJdbcQueryExecuter.java:134)
在com.jaspersoft.jasperserver.api.engine.jasperreports.util.JRTimezoneJdbcQueryExecuterFactory.createQueryExecuter(JRTimezoneJdbcQueryExecuterFactory.java:50)
位于net.sf.jasperreports.engine.fill.JRFillDataset.createQueryDatasource(JRFillDataset.java:728)
位于net.sf.jasperreports.engine.fill.JRFillDataset.initDatasource(JRFillDataset.java:629)
位于net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:1159)
位于net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:802)
位于net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:746)
位于net.sf.jasperreports.engine.fill.JRFillSubreport.fillSubreport(JRFillSubreport.java:640)
位于net.sf.jasperreports.engine.fill.JRSubreportRunnable.run(JRSubreportRunnable.java:59)
位于net.sf.jasperreports.engine.fill.JRThreadSubreportRunner.run(JRThreadSubreportRunner.java:205)
运行(Thread.java:619)

据我所知,这是一个很好的例子,但并没有受到太多的关注。是否有人遇到此错误并提出了解决方法或至少对正在发生的情况进行了解释?

以便回答此问题:

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