Birt 对引擎API使用RunningCount聚合时出现NullPointerException
我正在尝试升级我的应用程序以使用BIRT 3.7.1版本。目前我使用的是2.6.0版 我正在使用最新的稳定版本3.7.1 在测试过程中,我遇到了一个异常,报告使用了serial numberRunningCount聚合。当我将报表与报表引擎API一起使用时会出现此异常,如果我使用web viewer,则报表工作正常 我附加了一个小测试用例来重新创建这个问题。这包括报表设计文件和一个类,我在其中使用ReportEngine生成报表 请在下面查找错误日志:Birt 对引擎API使用RunningCount聚合时出现NullPointerException,birt,Birt,我正在尝试升级我的应用程序以使用BIRT 3.7.1版本。目前我使用的是2.6.0版 我正在使用最新的稳定版本3.7.1 在测试过程中,我遇到了一个异常,报告使用了serial numberRunningCount聚合。当我将报表与报表引擎API一起使用时会出现此异常,如果我使用web viewer,则报表工作正常 我附加了一个小测试用例来重新创建这个问题。这包括报表设计文件和一个类,我在其中使用ReportEngine生成报表 请在下面查找错误日志: Jan 3, 2012 4:34:42 P
Jan 3, 2012 4:34:42 PM org.eclipse.birt.report.engine.api.impl.RunAndRenderTask doRun
SEVERE: An error happened while running the report. Cause:
java.lang.NullPointerException
at org.eclipse.birt.core.util.IOUtil.writeInt(IOUtil.java:226)
at org.eclipse.birt.core.util.IOUtil.writeObject(IOUtil.java:674)
at org.eclipse.birt.data.engine.executor.transform.SimpleGroupCalculator.next(SimpleGroupCalculator.java:233)
at org.eclipse.birt.data.engine.executor.transform.SimpleResultSet.next(SimpleResultSet.java:562)
at org.eclipse.birt.data.engine.executor.transform.ResultSetWrapper.next(ResultSetWrapper.java:81)
at org.eclipse.birt.data.engine.impl.ResultIterator.hasNextRow(ResultIterator.java:584)
at org.eclipse.birt.data.engine.impl.ResultIterator.nextRow(ResultIterator.java:525)
at org.eclipse.birt.data.engine.impl.ResultIterator.next(ResultIterator.java:475)
at org.eclipse.birt.report.engine.data.dte.QueryResultSet.next(QueryResultSet.java:191)
at org.eclipse.birt.report.engine.executor.ListingElementExecutor.hasNextChild(ListingElementExecutor.java:244)
at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.hasNextChild(WrappedReportItemExecutor.java:86)
at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.hasNextChild(WrappedReportItemExecutor.java:86)
at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:62)
at org.eclipse.birt.report.engine.layout.html.HTMLStackingLM.layoutChildren(HTMLStackingLM.java:26)
at org.eclipse.birt.report.engine.layout.html.HTMLTableLM.layoutChildren(HTMLTableLM.java:132)
at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:140)
at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:70)
at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:92)
at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:100)
at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:180)
at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:77)
at com.eclipse.birt.test.RunningCountFieldTest.main(RunningCountFieldTest.java:52)
Exception in thread "main" org.eclipse.birt.report.engine.api.EngineException: Error happened while running the report.
at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:196)
at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:77)
at com.eclipse.birt.test.RunningCountFieldTest.main(RunningCountFieldTest.java:52)
Caused by: java.lang.NullPointerException
at org.eclipse.birt.core.util.IOUtil.writeInt(IOUtil.java:226)
at org.eclipse.birt.core.util.IOUtil.writeObject(IOUtil.java:674)
at org.eclipse.birt.data.engine.executor.transform.SimpleGroupCalculator.next(SimpleGroupCalculator.java:233)
at org.eclipse.birt.data.engine.executor.transform.SimpleResultSet.next(SimpleResultSet.java:562)
at org.eclipse.birt.data.engine.executor.transform.ResultSetWrapper.next(ResultSetWrapper.java:81)
at org.eclipse.birt.data.engine.impl.ResultIterator.hasNextRow(ResultIterator.java:584)
at org.eclipse.birt.data.engine.impl.ResultIterator.nextRow(ResultIterator.java:525)
at org.eclipse.birt.data.engine.impl.ResultIterator.next(ResultIterator.java:475)
at org.eclipse.birt.report.engine.data.dte.QueryResultSet.next(QueryResultSet.java:191)
at org.eclipse.birt.report.engine.executor.ListingElementExecutor.hasNextChild(ListingElementExecutor.java:244)
at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.hasNextChild(WrappedReportItemExecutor.java:86)
at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.hasNextChild(WrappedReportItemExecutor.java:86)
at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:62)
at org.eclipse.birt.report.engine.layout.html.HTMLStackingLM.layoutChildren(HTMLStackingLM.java:26)
at org.eclipse.birt.report.engine.layout.html.HTMLTableLM.layoutChildren(HTMLTableLM.java:132)
at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:140)
at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:70)
at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:92)
at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:100)
at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:180)
... 2 more
您可以在中找到一个示例程序来重新创建问题
请帮助我解决此问题。我通过分离报表引擎API的运行任务和呈现任务来解决此问题 而不是使用IRunAndRenderTask task=engine.createrunandendertask设计;运行两个IRunTask runTask=engine.createRunTaskdesign;和IRenderTask renderTask=engine.createRenderTask报告文档;分开地