【问题标题】:Export Report to CSV issue in Birt在 Birt 中将报告导出为 CSV 问题
【发布时间】:2014-02-20 09:52:26
【问题描述】:

当我通过 Export report-> csv 导出报告时,报告将下载为 .htm 文件。当我在 Firefox 中打开这个 .htm 文件时,出现以下错误:

org.eclipse.birt.report.service.api.ReportServiceException: Error happened while running the report.
AxisFault

faultCode: 

faultSubcode:

faultString: org.eclipse.birt.report.service.api.ReportServiceException: Error happened while running the report.

faultActor:

faultNode:

faultDetail:

    {http://xml.apache.org/axis/}stackTrace:org.eclipse.birt.report.service.api.ReportServiceException: Error happened while running the report.

    at org.eclipse.birt.report.service.ReportEngineService.throwDummyException(ReportEngineService.java:1106)

    at org.eclipse.birt.report.service.ReportEngineService.renderReport(ReportEngineService.java:1553)

    at org.eclipse.birt.report.service.BirtViewerReportService.renderReport(BirtViewerReportService.java:369)

    at org.eclipse.birt.report.service.actionhandler.BirtRenderReportActionHandler.__execute(BirtRenderReportActionHandler.java:65)

    at org.eclipse.birt.report.service.actionhandler.AbstractBaseActionHandler.execute(AbstractBaseActionHandler.java:90)

    at org.eclipse.birt.report.presentation.aggregation.layout.FramesetFragment.doService(FramesetFragment.java:222)

    at org.eclipse.birt.report.presentation.aggregation.layout.FramesetFragment.service(FramesetFragment.java:86)

    at org.eclipse.birt.report.servlet.ViewerServlet.__doGet(ViewerServlet.java:181)

    at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.doPost(BirtSoapMessageDispatcherServlet.java:278)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)

    at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)

    at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.service(BirtSoapMessageDispatcherServlet.java:122)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:324)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242)

    at org.eclipse.birt.report.filter.ViewerFilter.doFilter(ViewerFilter.java:68)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242)

    at org.hbsp.cl.report.web.SessionFilter.doFilter(SessionFilter.java:48)

    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)

    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242)

    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)

    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)

    at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:181)

    at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.event(CatalinaContext.java:285)

    at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.invoke(CatalinaContext.java:261)

    at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:88)

    at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:100)

    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:159)

    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

    at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)

    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

    at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java:53)

    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362)

    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)

    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:654)

    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951)

    at java.lang.Thread.run(Thread.java:662)

Caused by: org.eclipse.birt.report.engine.api.EngineException: Error happened while running the report.

    at org.eclipse.birt.report.engine.api.impl.EngineTask.handleFatalExceptions(EngineTask.java:2248)

    at org.eclipse.birt.report.engine.api.impl.RenderTask.render(RenderTask.java:298)

    at org.eclipse.birt.report.service.ReportEngineService.renderReport(ReportEngineService.java:1547)

    ... 38 more

Caused by: java.lang.NullPointerException

    at org.eclipse.birt.report.engine.layout.LayoutUtil.contains(LayoutUtil.java:187)

    at org.eclipse.birt.report.engine.layout.LayoutUtil.isHiddenByVisibility(LayoutUtil.java:142)

    at org.eclipse.birt.report.engine.layout.LayoutUtil.isHidden(LayoutUtil.java:105)

    at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.handleVisibility(HTMLAbstractLM.java:368)

    at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:123)

    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.RenderTask$PageRangeRender.render(RenderTask.java:661)

    at org.eclipse.birt.report.engine.api.impl.RenderTask.render(RenderTask.java:294)

    ... 39 more



    {http://xml.apache.or...e:impetus-b0109

    {}:org.eclipse.birt.report.service.api.ReportServiceException: Error happened while running the report.

    at org.eclipse.birt.report.service.ReportEngineService.throwDummyException(ReportEngineService.java:1106)

    at org.eclipse.birt.report.service.ReportEngineService.renderReport(ReportEngineService.java:1553)

    at org.eclipse.birt.report.service.BirtViewerReportService.renderReport(BirtViewerReportService.java:369)

    at org.eclipse.birt.report.service.actionhandler.BirtRenderReportActionHandler.__execute(BirtRenderReportActionHandler.java:65)

    at org.eclipse.birt.report.service.actionhandler.AbstractBaseActionHandler.execute(AbstractBaseActionHandler.java:90)

    at org.eclipse.birt.report.presentation.aggregation.layout.FramesetFragment.doService(FramesetFragment.java:222)

    at org.eclipse.birt.report.presentation.aggregation.layout.FramesetFragment.service(FramesetFragment.java:86)

    at org.eclipse.birt.report.servlet.ViewerServlet.__doGet(ViewerServlet.java:181)

    at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.doPost(BirtSoapMessageDispatcherServlet.java:278)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)

    at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)

    at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.service(BirtSoapMessageDispatcherServlet.java:122)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:324)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242)

    at org.eclipse.birt.report.filter.ViewerFilter.doFilter(ViewerFilter.java:68)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242)

    at org.hbsp.cl.report.web.SessionFilter.doFilter(SessionFilter.java:48)

    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)

    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242)

    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)

    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)

    at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:181)

    at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.event(CatalinaContext.java:285)

    at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.invoke(CatalinaContext.java:261)

    at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:88)

    at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:100)

    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:159)

    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

    at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)

    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

    at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java:53)

    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362)

    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)

    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:654)

    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951)

    at java.lang.Thread.run(Thread.java:662)

Caused by: org.eclipse.birt.report.engine.api.EngineException: Error happened while running the report.

    at org.eclipse.birt.report.engine.api.impl.EngineTask.handleFatalExceptions(EngineTask.java:2248)

    at org.eclipse.birt.report.engine.api.impl.RenderTask.render(RenderTask.java:298)

    at org.eclipse.birt.report.service.ReportEngineService.renderReport(ReportEngineService.java:1547)

    ... 38 more

Caused by: java.lang.NullPointerException

    at org.eclipse.birt.report.engine.layout.LayoutUtil.contains(LayoutUtil.java:187)

    at org.eclipse.birt.report.engine.layout.LayoutUtil.isHiddenByVisibility(LayoutUtil.java:142)

    at org.eclipse.birt.report.engine.layout.LayoutUtil.isHidden(LayoutUtil.java:105)

    at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.handleVisibility(HTMLAbstractLM.java:368)

    at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:123)

    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.RenderTask$PageRangeRender.render(RenderTask.java:661)

    at org.eclipse.birt.report.engine.api.impl.RenderTask.render(RenderTask.java:294)

    ... 39 more





org.eclipse.birt.report.service.api.ReportServiceException: Error happened while running the report.

    at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)

    at org.eclipse.birt.report.utility.BirtUtility.makeAxisFault(BirtUtility.java:761)

    at org.eclipse.birt.report.service.actionhandler.AbstractBaseActionHandler.execute(AbstractBaseActionHandler.java:94)

    at org.eclipse.birt.report.presentation.aggregation.layout.FramesetFragment.doService(FramesetFragment.java:222)

    at org.eclipse.birt.report.presentation.aggregation.layout.FramesetFragment.service(FramesetFragment.java:86)

    at org.eclipse.birt.report.servlet.ViewerServlet.__doGet(ViewerServlet.java:181)

    at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.doPost(BirtSoapMessageDispatcherServlet.java:278)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)

    at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)

    at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.service(BirtSoapMessageDispatcherServlet.java:122)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:324)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242)

    at org.eclipse.birt.report.filter.ViewerFilter.doFilter(ViewerFilter.java:68)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242)

    at org.hbsp.cl.report.web.SessionFilter.doFilter(SessionFilter.java:48)

    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)

    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242)

    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)

    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)

    at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:181)

    at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.event(CatalinaContext.java:285)

    at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.invoke(CatalinaContext.java:261)

    at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:88)

    at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:100)

    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:159)

    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

    at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)

    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

    at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java:53)

    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362)

    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)

    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:654)

    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951)

    at java.lang.Thread.run(Thread.java:662)

Caused by: org.eclipse.birt.report.service.api.ReportServiceException: Error happened while running the report.

    at org.eclipse.birt.report.service.ReportEngineService.throwDummyException(ReportEngineService.java:1106)

    at org.eclipse.birt.report.service.ReportEngineService.renderReport(ReportEngineService.java:1553)

    at org.eclipse.birt.report.service.BirtViewerReportService.renderReport(BirtViewerReportService.java:369)

    at org.eclipse.birt.report.service.actionhandler.BirtRenderReportActionHandler.__execute(BirtRenderReportActionHandler.java:65)

    at org.eclipse.birt.report.service.actionhandler.AbstractBaseActionHandler.execute(AbstractBaseActionHandler.java:90)

    ... 35 more

Caused by: org.eclipse.birt.report.engine.api.EngineException: Error happened while running the report.

    at org.eclipse.birt.report.engine.api.impl.EngineTask.handleFatalExceptions(EngineTask.java:2248)

    at org.eclipse.birt.report.engine.api.impl.RenderTask.render(RenderTask.java:298)

    at org.eclipse.birt.report.service.ReportEngineService.renderReport(ReportEngineService.java:1547)

    ... 38 more

Caused by: java.lang.NullPointerException

    at org.eclipse.birt.report.engine.layout.LayoutUtil.contains(LayoutUtil.java:187)

    at org.eclipse.birt.report.engine.layout.LayoutUtil.isHiddenByVisibility(LayoutUtil.java:142)

    at org.eclipse.birt.report.engine.layout.LayoutUtil.isHidden(LayoutUtil.java:105)

    at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.handleVisibility(HTMLAbstractLM.java:368)

    at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:123)

    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.RenderTask$PageRangeRender.render(RenderTask.java:661)


    at org.eclipse.birt.report.engine.api.impl.RenderTask.render(RenderTask.java:294)

【问题讨论】:

  • 啊,著名的 BIRT 错误。当您导出为不同于 CSV 的格式(例如 HTML、PDF 等)时会发生什么?如果可行,则问题可能出在您的 CSV 插件中。

标签: export birt export-to-csv


【解决方案1】:

确保您的 CSV 发射器插件正确,否则只需替换此发射器 view & download

【讨论】:

    【解决方案2】:

    NPE 被抛出,因为发射器的输出格式为空。

    您需要更新发射器代码(CSVReportEmitter.java)并覆盖该方法并重建发射器。

    public String getOutputFormat() {
    
        return "csv";
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-06
      • 1970-01-01
      • 2014-05-14
      • 1970-01-01
      • 2018-12-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多