Thursday, July 21, 2011

Replacing the default BIRT XLS Emitter

If you are using the BIRT 3.7 runtime, the BIRT engine is now in one JAR. See the BIRT 3.7 New and Notable for more details.

While this is optimal for a lot of reasons, it does make it a little more difficult to replace the default BIRT emitters. We have seen this with many users wanting to use the Tribix emitters.

See this thread and this bug for an example of the issues. While replacing the emitter is achievable through the method described in the forum post, it is not very elegant. BIRT supports having two emitters that emit the same output format. When the engine processes a request for a specific output format the first emitter found by the runtime generally processes the request. This may not be desirable. To work around this a user can specify a specific emitter id to process the given output format. So if you have both the Tribix XLS and the default BIRT XLS emitter deployed you can specify which emitter to use to process the report. To illustrate how to do this, we will use the Tribix XLS emitter.

Deploy Tribix Emitter

First download the Tribix emitter and deploy it. If you are using the WebViewer with Version 2.6.2 or earlier, just copy:

org.uguess.birt.report.engine.emitter.xls_version.jar
org.uguess.birt.report.engine.common_version.jar

to the WebViewer/WEB-INF/platform/plugins directory.

If you are using BIRT 3.7 or later extract the following jars from the org.uguess.birt.report.engine.emitter.xls_version.jar.

xl-emitter.jar
lib/poi-3.5..jar
lib/commons-logging-version.jar
lib/commons-jexl-version.jar

Copy these jars to the WebViewer/WEB-INF/lib directory. Make sure they are no longer in the org.uguess.birt.report.engine.emitter.xls_version.jar. Finally, copy the modified org.uguess.birt.report.engine.emitter.xls_version.jar and the org.uguess.birt.report.engine.common_version.jar to the WebViewer/WEB-INF/lib folder.

Specifying Which Emitter To Use

The WebViewer provides a URL parameter, named __emitterid that can be used to specify which emitter to use for the xls format. For example:

This URL will use the default BIRT XLS emitter

http://localhost:8090/WebViewer/frameset?__report=test.rptdesign&sample=my+parameter&__emitterid=org.eclipse.birt.report.engine.emitter.prototype.excel&__asattachment=true&__format=xls

This URL will use the Tribix XLS emitter

http://localhost:8090/WebViewer/frameset?__report=test.rptdesign&sample=my+parameter&__emitterid=org.uguess.birt.report.engine.emitter.xls&__asattachment=true&__format=xls

This does not address the case when you are using the export button in the web viewer. In order to change which XLS emitter is used when the button is pressed, you will need to modify the
BirtExportReportDialog.js file in the WebViewer/ webcontent/birt/ajax/ui/dialog directory. Modify the __exportAction function to add the emitter id parameter to the request.



__exportAction : function( )
{
.
.
.
else
{
action = action.replace( reg, "$1=false" );
}
if( format=="xls"){
//action = action + "&__emitterid=org.eclipse.birt.report.engine.emitter.prototype.excel";
action = action + "&__emitterid=org.uguess.birt.report.engine.emitter.xls"
}

formObj.action = action;
formObj.method = "post";
formObj.submit( );

return true;
}



If you are using the Report Engine API, there is a render option available for setting the emitter id.



EXCELRenderOption options = new EXCELRenderOption();
options.setOutputFormat("xls");
options.setOutputFileName("output/resample/ps.xls");
options.setOption(IRenderOption.EMITTER_ID, "org.eclipse.birt.report.engine.emitter.prototype.excel");
IRenderTask task = engine.createRenderTask(document);
task.setRenderOption(options);


or


EXCELRenderOption options = new EXCELRenderOption();
options.setOutputFormat("xls");
options.setOutputFileName("output/resample/ps.xls");
options.setOption(IRenderOption.EMITTER_ID, "org.uguess.birt.report.engine.emitter.xls");
IRenderTask task = engine.createRenderTask(document);
task.setRenderOption(options);

42 comments:

  1. Anonymous4:41 AM

    Thanks for the instructions, they were extremely useful. However, we had some problems installing the Tribix emitter, due to the conflict with another version of the commons-logging .jar which is present in a library that is already in WEB-INF/lib of the BIRT 3.7 WebViewerExample.

    Basically, the instructions above call for extracting the 'commons-logging...jar' into the birt/WEB-INF/lib directory. In our JBoss 6 installations this resulted in a Security exception being thrown during booting of 'birt.war' application. The exception is thrown because some of the classes in the 'commons-logging' jar are also found in the 'org.apache.batik.pdf_1.6.0.v201105071520.jar' and in the latter package they are signed.

    So, what we did was to remove the 'commons-logging' jar from the 'WEB-INF/lib' and remove the dependency on it in the MANIFEST file of the 'org.uguess.birt.report.engine.emitter.xls_2.5.2.201107181644.jar'. This avoided the duplicate files classloading, and allowed Tribix emitter to register itself.

    ReplyDelete
  2. Thanks for the comment and your solution.

    ReplyDelete
  3. Hello,

    i tried integrating Tribix in the way it is said here, but am facing issues with it.
    Firstly, when i specify the emitter id (either BIRT or Tribix xls emitter) in the url, the xls is rendered with exception stacktrace. +org.eclipse.birt.report.service.api.ReportServiceException: EmitterID org.eclipse.birt.report.engine.emitter.xls for render option is invalid.
    Second, i dont see this line in the .js file as said:
    if( format=="xls"){
    //action = action + "&__emitterid=org.eclipse.birt.report.engine.emitter.prototype.excel";

    Note that i am using birt-runtime-3_7_0 and org.uguess.birt.report.engine.emitter.xls_2.5.2.201107181644.jar

    I am not sure what i am doing wrongly, but i think this has something to do with the version.

    Your help will be much appreciated as i am really struggling to make it (download as xls) work.

    ReplyDelete
  4. The writeup was done with 3.7. Do you have org.uguess.birt.report.engine.common_1.1.1.201001221050.jar as well? Did you extract the jars within the tribix xml emitter and place them in the web-inf/lib?

    That line in the js file is not there. You need to add it above the formObj.action = action line.

    ReplyDelete
  5. Jason,

    I tried in all way to export excel with graphical chart.
    but it export only the text not the chart.
    kindly give us clear picture to export excel with graphs.
    I am using 3.7 version and i use in my web application with other libs not through birt viewer app.

    Thanks,
    Nandha.

    ReplyDelete
  6. The default xls emitter does not support images or charts. You can try the Tribix emitter or the ODS emitter.

    Jason

    ReplyDelete
  7. Hi, options.setOption(IRenderOption.EMITTER_ID, "org.uguess.birt.report.engine.emitter.xls");
    and the steps you mentioned above is to register tribix emitter i think.
    I did that and am trying to export this chart in excel 2003 version.
    i don't know where am wrong in configuring tribix in my web app.
    Please guide me.
    Thanks,
    Nandha

    ReplyDelete
  8. Did you look at this thread?
    http://www.birt-exchange.org/org/forum/index.php/topic/22708-tribix-emitters-in-birt-3-7/

    Jason

    ReplyDelete
  9. Hi,

    I want to see the option "View Report as XLS Tribix" in eclipse disgner. I did place the tribix jar files in eclipse/plugins folder. But i am unable to set the option to view report using tribix emiter.

    When i am using eclipse disginer, where do we set the IRenderOption.EMITTER_ID option?

    Thanks,
    Ramesh S

    ReplyDelete
  10. In the designer you can just remove the default xls emitter plugins and copy the Tribix emitter plugins into the plugins directory.

    ReplyDelete
  11. Anonymous9:46 AM

    Is there a way to replace the default XLS emitter when using the runtime version (genReport.bat)?

    ReplyDelete
  12. Anonymous11:31 AM

    I have downloaded the Tribix jar files:
    org.uguess.birt.report.engine.emitter.xls_2.5.2.201107181644.jar

    org.uguess.birt.report.engine.common_2.5.2.201107181644.jar


    I extracted the 4 jar files and repackaged the org.uguess.birt.report.engine.emitter.xls_2.5.2.201107181644.jar file.

    All of the .jar files have been placed in ReportEngine/lib directory.

    However, when I run the genReport.bat file, I get the following error:

    XML ERROR in Table
    REASON: Bad Value
    FILE: C:\birt-runtime\ReportEngine\Test.xls
    GROUP: Row
    TAG: Cell
    ATTRIB: Index
    VALUE: 2


    Any suggestions?

    ReplyDelete
  13. What version of birt are you using?

    ReplyDelete
  14. Anonymous11:44 AM

    I am using birt-runtime-3_7_1.

    ReplyDelete
  15. Does it work for any report? BTW you may have to remove the default emitter from the birt runtime jar as described in this thread:http://www.birt-exchange.org/org/forum/index.php/topic/22708-tribix-emitters-in-birt-3-7/

    ReplyDelete
  16. Tim H.12:04 PM

    I also went back to just the default installation of birt-runtime-3_7_1 and I receive the same error.

    So now I am not sure if it was even calling the tribix emitter.

    ReplyDelete
  17. Tim H.12:08 PM

    I already followed the instructions to remove the default emitter.

    It works for the default hello world report, but not for any of the reports that are querying Maximo databases. All reports run fine in PDF or HTML.

    ReplyDelete
  18. Can you create a report off of the sample db that returns data in a table and test it?

    ReplyDelete
  19. Tim H.12:42 PM

    I do not know of a sample database to test against.

    ReplyDelete
  20. I mean the sample db that is shipped with birt. Look at new data source and it should be listed as "Classic Models Inc"

    ReplyDelete
  21. I tried to follow the instructions to integrate tibix emitter and getting error message

    org.eclipse.birt.report.engine.api.EngineException: EmitterID org.uguess.birt.report.engine.emitter.xls for render option is invalid.
    at org.eclipse.birt.report.engine.api.impl.EngineTask.setupRenderOption(EngineTask.java:1913)

    As specified in http://www.birt-exchange.org/org/forum/index.php/topic/22708-tribix-emitters-in-birt-3-7/, I made changes to plugin.xml and manifest file, created a jar file for birth_3.7 env.
    Also extracted the tribix jars and created a new jar file. Added all the jars to build classpath.

    Can anyone help in resolving the issue

    ReplyDelete
  22. Anonymous7:24 AM

    I am also facing the similar problem
    EmitterID org.eclipse.birt.report.engine.emitter.prototype.excel for render option is invalid.

    I followed all of the steps. Not sure whatz wrong.

    ReplyDelete
  23. Anonymous7:27 AM

    whole exception trace:
    org.eclipse.birt.report.engine.api.EngineException: EmitterID org.eclipse.birt.report.engine.emitter.prototype.excel for render option is invalid.
    at com.XXX.fci.infr.engine.birt.BirtReportEngine.runTask(BirtReportEngine.java:249)
    at com.XXX.fci.infr.engine.birt.BirtReportEngine.doGenerateReport(BirtReportEngine.java:309)
    at com.XXX.fci.app.engine.api.BaseReportEngine.generateReport(BaseReportEngine.java:95)
    at com.XXX.fci.app.reporting.async.ReportResultFuture$1.call(ReportResultFuture.java:24)
    at com.XXX.fci.app.reporting.async.ReportResultFuture$1.call(ReportResultFuture.java:1)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    ... 1 more
    Caused by: org.eclipse.birt.report.engine.api.EngineException: EmitterID org.eclipse.birt.report.engine.emitter.prototype.excel for render option is invalid.
    at org.eclipse.birt.report.engine.api.impl.EngineTask.setupRenderOption(EngineTask.java:1916)
    at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:96)
    at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:77)
    at com.XXX.fci.infr.engine.birt.BirtReportEngine.runTask(BirtReportEngine.java:241)
    ... 9 more

    ReplyDelete
  24. what jars do you have in your classpath?

    ReplyDelete
  25. I got it resolved. I need not have to modify the birt runtime jar. I extracted the 4 jars from org.uguess.birt.report.engine.emitter.xls_version.jar and added all 4 of them along with original org.uguess.birt.report.engine.emitter.xls_version.jar to the build classpath.

    Only issue is with the cell spacing, with tribix emitter spanning data into multiple rows the data is not being displayed correctly

    ReplyDelete
  26. thank you for the post,
    replacing the default BIRT emitters has gotten a little challenging

    ReplyDelete
  27. yes I know. You do have the option to use the osgi runtime instead of the pojo runtime though. We need to look for a better way to handle this with the POJO runtime.

    ReplyDelete
  28. Hi I am also facing this problem when i import those jar files in my plegins folder and extract those jars in lib folder
    i got an fallowing exception

    - org.eclipse.birt.report.service.api.ReportServiceException: Report engine fails to initialize xls emitter, please make sure required libraries for this emitter are installed.

    AxisFault
    faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
    faultSubcode:
    faultString: org.eclipse.birt.report.service.api.ReportServiceException: Report engine fails to initialize xls emitter, please make sure required libraries for this emitter are installed.

    can any one help me please

    ReplyDelete
  29. Can you give some more detail? What emitter and are you using the viewer?

    ReplyDelete
  30. Hi

    I am using bellow two jar files to export chart into excel sheet . I am using Birt version 3.4.2

    org.uguess.birt.report.engine.emitter.xls_2.5.2.201107181644
    org.uguess.birt.report.engine.common_2.5.2.201107181644

    I am extract these two jars in plgins folder and copy those extracted jars in lib folder . After that i add bellow code in dialoge.js which is located at web contact as u said before .

    if( format=="xls"){
    //action = action + "&__emitterid=org.eclipse.birt.report.engine.emitter.prototype.excel";
    action = action + "&__emitterid=org.uguess.birt.report.engine.emitter.xls"
    }

    formObj.action = action;
    formObj.method = "post";
    formObj.submit( );

    return true;

    I fallow all the steps above u said after that export report in excel format then i am getting bellow exception. I am new to birt so that i can't understand what i did mistake.

    Regards,

    Swaroop.

    ReplyDelete
  31. I got bellow exception.

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

    AxisFault
    faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
    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:1054)
    at org.eclipse.birt.report.service.ReportEngineService.runAndRenderReport(ReportEngineService.java:883)
    at org.eclipse.birt.report.service.BirtViewerReportService.runAndRenderReport(BirtViewerReportService.java:938)
    at org.eclipse.birt.report.service.actionhandler.BirtRunAndRenderActionHandler.__execute(BirtRunAndRenderActionHandler.java:76)
    at org.eclipse.birt.report.service.actionhandler.AbstractBaseActionHandler.execute(AbstractBaseActionHandler.java:90)
    at org.eclipse.birt.report.presentation.aggregation.layout.EngineFragment.doService(EngineFragment.java:318)
    at org.eclipse.birt.report.presentation.aggregation.AbstractBaseFragment.service(AbstractBaseFragment.java:76)
    at org.eclipse.birt.report.servlet.BirtEngineServlet.__doGet(BirtEngineServlet.java:120)
    at org.eclipse.birt.report.servlet.BaseReportEngineServlet.doGet(BaseReportEngineServlet.java:185)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)
    at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
    at org.eclipse.birt.report.servlet.BaseReportEngineServlet.service(BaseReportEngineServlet.java:116)
    at org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper.service(ServletManager.java:180)
    at org.eclipse.equinox.http.servlet.internal.ServletRegistration.handleRequest(ServletRegistration.java:90)
    at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:111)
    at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:59)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
    at org.eclipse.equinox.http.jetty.internal.HttpServerManager$InternalHttpServiceServlet.service(HttpServerManager.java:269)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:428)
    at org.mortbay.jetty.servlet.ServletHandler.dispatch(ServletHandler.java:677)
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568)
    at org.mortbay.http.HttpContext.handle(HttpContext.java:1530)
    at org.mortbay.http.HttpContext.handle(HttpContext.java:1482)
    at org.mortbay.http.HttpServer.service(HttpServer.java:909)
    at org.mortbay.http.HttpConnection.service(HttpConnection.java:820)
    at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:986)
    at org.mortbay.http.HttpConnection.handle(HttpConnection.java:837)
    at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:245)
    at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
    at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
    Caused by: 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:180)
    at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:72)
    at org.eclipse.birt.report.service.ReportEngineService.runAndRenderReport(ReportEngineService.java:877)
    ... 29 more

    ReplyDelete
  32. I got fallowing exception.

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

    AxisFault
    faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
    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:1054)
    at org.eclipse.birt.report.service.ReportEngineService.runAndRenderReport(ReportEngineService.java:883)
    at org.eclipse.birt.report.service.BirtViewerReportService.runAndRenderReport(BirtViewerReportService.java:938)
    at org.eclipse.birt.report.service.actionhandler.BirtRunAndRenderActionHandler.__execute(BirtRunAndRenderActionHandler.java:76)
    at org.eclipse.birt.report.service.actionhandler.AbstractBaseActionHandler.execute(AbstractBaseActionHandler.java:90)
    at org.eclipse.birt.report.presentation.aggregation.layout.EngineFragment.doService(EngineFragment.java:318)
    at org.eclipse.birt.report.presentation.aggregation.AbstractBaseFragment.service(AbstractBaseFragment.java:76)
    at org.eclipse.birt.report.servlet.BirtEngineServlet.__doGet(BirtEngineServlet.java:120)
    at org.eclipse.birt.report.servlet.BaseReportEngineServlet.doGet(BaseReportEngineServlet.java:185)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)
    at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
    at org.eclipse.birt.report.servlet.BaseReportEngineServlet.service(BaseReportEngineServlet.java:116)
    at org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper.service(ServletManager.java:180)
    at org.eclipse.equinox.http.servlet.internal.ServletRegistration.handleRequest(ServletRegistration.java:90)
    at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:111)
    at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:59)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
    at org.eclipse.equinox.http.jetty.internal.HttpServerManager$InternalHttpServiceServlet.service(HttpServerManager.java:269)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:428)
    at org.mortbay.jetty.servlet.ServletHandler.dispatch(ServletHandler.java:677)
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568)
    at org.mortbay.http.HttpContext.handle(HttpContext.java:1530)
    at org.mortbay.http.HttpContext.handle(HttpContext.java:1482)
    at org.mortbay.http.HttpServer.service(HttpServer.java:909)
    at org.mortbay.http.HttpConnection.service(HttpConnection.java:820)
    at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:986)
    at org.mortbay.http.HttpConnection.handle(HttpConnection.java:837)
    at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:245)
    at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
    at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
    Caused by: 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:180)
    at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:72)
    at org.eclipse.birt.report.service.ReportEngineService.runAndRenderReport(ReportEngineService.java:877)
    ... 29 more


    Regards,

    swaroop

    ReplyDelete
  33. When you say "copy those extracted jars in lib folder" did you remove the jars from the plugins?

    ReplyDelete
  34. Hi Janson
    Thanks for your reply,

    I didn't remove extracted new jar files in plugins but i remove the bellow jar file .

    org.eclipse.birt.report.engine.emitter.prototype.excel

    swaroop.

    ReplyDelete
  35. Anonymous12:01 AM

    Hello,
    I am using Glassfish 3 with EAR including a WAR application.
    I put the jars into WEB-INF/lib, excluded the 4 jars from the original plugin jar.
    However, when I call my report, I get the following exception:

    [#|2012-10-23T08:52:47.380+0200|SEVERE|glassfish3.1.1|org.eclipse.birt.report.engine.api.impl.ReportEngine|_ThreadID=87;_ThreadName=Thread-2;|Error happened while running the report.
    java.lang.Error: Unresolved compilation problems:
    The import org.apache.poi cannot be resolved
    The import org.apache.poi cannot be resolved
    The import org.apache.poi cannot be resolved
    The import org.apache.poi cannot be resolved
    The import org.apache.poi cannot be resolved
    The import org.apache.poi cannot be resolved
    The import org.apache.poi cannot be resolved
    at org.uguess.birt.report.engine.emitter.xls.XlsRenderer.(XlsRenderer.java:88)
    at org.uguess.birt.report.engine.emitter.xls.XlsRenderer2.(XlsRenderer2.java:53)
    at org.uguess.birt.report.engine.emitter.xls.XlsEmitter.initialize(XlsEmitter.java:100)
    at org.eclipse.birt.report.engine.nLayout.LayoutEngine.initialize(LayoutEngine.java:140)
    at org.eclipse.birt.report.engine.api.impl.EngineTask.initializeContentEmitter(EngineTask.java:2205)
    at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:117)
    at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:77)
    at at.hallermobil.report.engine.BirtEngine.generateReport(BirtEngine.java:101)
    at at.hallermobil.report.servlets.ReportServlet.doPost(ReportServlet.java:70)
    at at.hallermobil.report.servlets.ReportServlet.doGet(ReportServlet.java:33)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
    at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1539)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
    at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
    at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:330)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:174)
    at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:828)
    at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:725)
    at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1019)
    at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
    at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
    at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
    at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
    at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
    at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
    at java.lang.Thread.run(Thread.java:722)

    ReplyDelete
  36. I download org.eclipse.birt.report.engine.emitter.nativexls_1.0.0.201110122114.jar and put it in eclipse\plugins\ folder and delete the org.eclipse.birt.report.engine.emitter.excel.config_myversion.jar
    and org.eclipse.birt.report.engine.emitter.prototype.excel_myversion.jar. I did this because my XLS files were too big and it worked.

    Then i put the org.eclipse.birt.report.engine.emitter.nativexls_1.0.0.201110122114.jar file in the C:\birt-runtime-3_7_2\ReportEngine\lib\. I then create it a script with genReport.bat in birt runtime 3.7.2 but it continue to generate large xls files. Then i try to extracted the org.eclipse.birt.runtime.version.jar comment the edited plugin.xml




    And



    but i get an Error: Could not find or load main class org.eclipse.birt.report.engine.api.ReportRunner

    I try to extract the org.eclipse.birt.report.engine.emitter.nativexls_1.0.0.201110122114.jar and copy the jar files in it
    dom4j-1.6.1.jar
    geronimo-stax-api_1.0_spec-1.0.jar
    poi-3.7-20101029.jar
    poi-ooxml-3.7-20101029.jar
    poi-ooxml-schemas-3.7-20101029.jar
    xmlbeans-2.3.0.jar
    to C:\birt-runtime-3_7_2\ReportEngine\lib\ and nothing,
    stell large xls files
    Please help me is urgent

    Thank you

    ReplyDelete
  37. i didn´t have the org.eclipse.birt.report.engine.emitter.prototype.excel.jar file in my Lib folder to delete

    ReplyDelete
  38. I replied in the BIRT forums:
    http://www.eclipse.org/forums/index.php/t/441699/

    ReplyDelete
  39. Anonymous8:25 AM

    Hello, Is it possible to export BIRT report to TIFF format ?

    Need quick reply :(

    ReplyDelete
  40. BIRT Does not have a default TIFF emitter but other users have exported to PDF and then used a converter package to convert to different image formats.

    ReplyDelete
  41. take a look at this thread:
    http://www.eclipse.org/forums/index.php/m/526700/

    ReplyDelete
  42. ismail3:35 AM

    Hi all!
    I am facing difficulties with extracting and repackaging jar files. please guide me somebody

    ReplyDelete