2014-04-23 79 views
1

我尝试在我的JasperServer上使用一个报告,这是在iReport的帮助下创建的。在iReport中,我的报告工作正常,没有错误。但是,当我试图部署它给了我下面的错误在很短的报告:JasperReports:java.lang.ClassCastException:java.lang.String不能转换为java.util.Date

java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Date

和完整的错误:

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

Error Message 
java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Date 

Error Trace  
java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Date 
at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.setDate(JRJdbcQueryExecuter.java:649) 
at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.setStatementParameter(JRJdbcQueryExecuter.java:577) 
at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.setStatementParameter(JRJdbcQueryExecuter.java:399) 
at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter$1.visit(JRJdbcQueryExecuter.java:332) 
at net.sf.jasperreports.engine.query.JRAbstractQueryExecuter$QueryParameter.accept(JRAbstractQueryExecuter.java:157) 
at net.sf.jasperreports.engine.query.JRAbstractQueryExecuter.visitQueryParameters(JRAbstractQueryExecuter.java:646) 
at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createStatement(JRJdbcQueryExecuter.java:317) 
at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:196) 
at com.jaspersoft.jasperserver.api.engine.jasperreports.util.JRTimezoneJdbcQueryExecuter.createDatasource(JRTimezoneJdbcQueryExecuter.java:168) 
at net.sf.jasperreports.engine.fill.JRFillDataset.createQueryDatasource(JRFillDataset.java:1087) 
at net.sf.jasperreports.engine.fill.JRFillDataset.initDatasource(JRFillDataset.java:668) 
at net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:1258) 
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:877) 
at net.sf.jasperreports.engine.fill.BaseFillHandle$ReportFiller.run(BaseFillHandle.java:120) 
at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$SynchronousExecutor.execute(EngineServiceImpl.java:875) 
at net.sf.jasperreports.engine.fill.BaseFillHandle.startFill(BaseFillHandle.java:165) 
at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$AsynchronousReportFiller.fillReport(EngineServiceImpl.java:831) 
at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.fillReport(EngineServiceImpl.java:1658) 
at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$ReportFill.runReport(EngineServiceImpl.java:1022) 
at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$ReportRunnable.run(EngineServiceImpl.java:897) 
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
at java.lang.Thread.run(Thread.java:619) 

我上传的报告,得到了正确的数据源(我测试它与另一个报告已经)并导入我的资源(子报表)和输入控件。我不知道我是否错过了一步,但我确信我做了所有必要的事情。导入每个子报表,设置输入控件声明正确的路径repo:mySubreports.jrxml。如果您需要更多信息,请告诉我!我想我添加了所有需要的信息,并且我不想用无用信息发送垃圾邮件,因为我不知道现在哪些信息可能有用:)

回答

1

我认为这与日期参数有关/您的报告中的变量。

请确保您的JasperServer日期参数进行输入控制是java.util.date

另外一个常见的错误我已经看到了自己重复是把一个默认值expresion像一个空字符串可能是("" )对他们的声明。在这种情况下,日期参数/变量我所看到的报告工作在iREPORT分享到人人也得到服务器上传没有任何错误,但它会抛出

java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Date Error Trace 

请检查上述两点与所有日期参数的报告和更新在这里,如果有效

感谢

钱德拉

+0

第二个是我的问题:)非常感谢你 –

相关问题