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:

Anonymous said...

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.

Jason Weathersby said...

Thanks for the comment and your solution.

Satyaki Basak said...

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.

Jason Weathersby said...

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.

nan said...

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.

Jason Weathersby said...

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

Jason

nan said...

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

Jason Weathersby said...

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

Jason

RameshS said...

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

Jason Weathersby said...

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

Anonymous said...

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

Anonymous said...

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?

Jason Weathersby said...

What version of birt are you using?

Anonymous said...

I am using birt-runtime-3_7_1.

Jason Weathersby said...

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/

Tim H. said...

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.

Tim H. said...

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.

Jason Weathersby said...

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

Tim H. said...

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

Jason Weathersby said...

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

pavan said...

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

Anonymous said...

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.

Anonymous said...

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

Jason Weathersby said...

what jars do you have in your classpath?

pavan said...

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

Brad said...

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

Jason Weathersby said...

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.

Unknown said...

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

Jason Weathersby said...

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

Unknown said...

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.

Unknown said...

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

Unknown said...

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

Jason Weathersby said...

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

Unknown said...

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.

Anonymous said...

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)

hugo said...

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

hugo said...

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

Jason Weathersby said...

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

Anonymous said...

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

Need quick reply :(

Jason Weathersby said...

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.

Jason Weathersby said...

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

ismail said...

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