Home
Analytics
Tribix emitters in BIRT 3.7
JimTalbut
Hi,
How should I deploy the tribix emitters (to replace the built-in Excel emitter) in BIRT 3.7?
Thanks
Jim
Find more posts tagged with
Comments
JasonW
Jim,
Can you log a bug for this. I got it to work but it is somewhat convoluted. Here are the steps I used:
//Birt 3.7 Runtime
Extracted the org.eclipse.birt.runtime.version.jar
edited the plugin.xml for the jar and commented out
<!--import from org.eclipse.birt.report.engine.emitter.prototype.excel
<extension name="excel emitter" point="org.eclipse.birt.report.engine.emitters">
<emitter class="org.eclipse.birt.report.engine.emitter.excel.ExcelEmitter" format="xls" id="org.eclipse.birt.report.engine.emitter.prototype.excel" mimeType="application/vnd.ms-excel" pagination="no-pagination"/>
</extension> -->
I then opened the META-INF folder and deleted everything but the MANIFEST.MF. I modified this file to look like:
Manifest-Version: 1.0
Bundle-Vendor: Eclipse.org
Bundle-Name: BIRT Runtime SDK
Bundle-SymbolicName: org.eclipse.birt.runtime
Bundle-Version: 3.7.0.v20110615-1818
I then zipped back up and changed the extension to .jar.
The final steps involve changes to the tribix emitter. Extract the jar and copy the following jars to the WEB-INF/lib of the viewer:
xl-emitter.jar
lib/poi-3.5..jar
lib/commons-logging-version.jar
lib/commons-jexl-version.jar
Remove these from the tribix emitter and re-zip up and rename to jar.
Jason
JimTalbut
Thanks Jason, I'll give that a go.
https://bugs.eclipse.org/bugs/show_bug.cgi?id=350662
JasonW
Updated: Blog post:
http://birtworld.blogspot.com/2011/07/replacing-default-birt-xls-emitter.html
Jason
sspavan
I followed the instructions provided at
http://birtworld.blogspot.com/2011/07/replacing-default-birt-xls-emitter.html
.
I am using birt 3.7. Modified the plugin.xml and mainifest file of org.eclipse.birt.runtime_3.7.0.v20110615-1818.jar and created a new jar file.
Also I extracted the jars from org.uguess.birt.report.engine.emitter.xls_2.5.2.201107181644.jar, updated the mainifest file and created a new jar file.
I am getting following error
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)
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.bcbsks.mr.reports.birt.BIRTReportGenerator.createReport(BIRTReportGenerator.java:58)
at com.bcbsks.mr.common.tasklet.GenerateBirtReportPOJO.execute(GenerateBirtReportPOJO.java:37)
at com.bcbsks.mr.reports.birt.GenerateBirtReportIT.testLaunchJob(GenerateBirtReportIT.java:27)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:611)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74)
at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:82)
at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:72)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:240)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:180)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
JasonW
What jars do you have in the classpath and what does your code look like?
Jason
flosmi
Hi,
where and how do i set this:
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);
i need a little bit more advice
Thanks.
JasonW
Are you using the viewer or the report engine API? If you are using the api post the code you are using now.
Jason
preethi.0402@gmail.com
<p style="font-size:13.63636302948px;color:rgb(0,0,0);font-family:Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif;">There is an issue in the XLS download in birt 4.3 when the birt is integrated in spring mcv, I had used the same code as below</p>
<p style="font-size:13.63636302948px;color:rgb(0,0,0);font-family:Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif;"> </p>
<p style="font-size:13.63636302948px;color:rgb(0,0,0);font-family:Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif;"><span style="color:rgb(40,40,40);font-family:'Source Sans Pro', sans-serif;">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); </span></p>
<p style="font-size:13.63636302948px;color:rgb(0,0,0);font-family:Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif;">Please find the stack trace below and help me in resolving the issue.</p>
<p style="font-size:13.63636302948px;color:rgb(0,0,0);font-family:Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif;">EmitterID uk.co.spudsoft.birt.emitters.excel.XlsEmitter for render option is invalid. at org.eclipse.birt.report.engine.api.impl.EngineTask.setupRenderOption(EngineTask.java:2022) at org.eclipse.birt.report.engine.api.impl.RenderTask$PageRangeRender.render(RenderTask.java:524) at org.eclipse.birt.report.engine.api.impl.RenderTask.render(RenderTask.java:294) at com.bluetree.web.BirtViewer.ReportRenderer.processReportDesignDocAndRenderReport(ReportRenderer.java:197) at com.bluetree.web.BirtViewer.ReportProcessor.processReport(ReportProcessor.java:58) at com.bluetree.web.controller.BirtReportController.doGet(BirtReportController.java:45) at com.bluetree.web.controller.BirtReportController.doPost(BirtReportController.java:53) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778) at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:146) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160) 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:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at com.bluetree.web.filters.CrossScriptingFilter.doFilter(CrossScriptingFilter.java:31) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)</p>
<p style="font-size:13.63636302948px;color:rgb(0,0,0);font-family:Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif;">Thanks,</p>
<p style="font-size:13.63636302948px;color:rgb(0,0,0);font-family:Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif;">Preethi</p>