2014-04-23 81 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

第二個是我的問題:)非常感謝你 –

相關問題