Hello,
When using Birt-viewer and another war application which use BIRT API, I've got this error based on those steps :
. Access application which is using birt API
. Access to birt viewer
Error :
<<
12:10:15,654 INFO [STDOUT] at org.eclipse.birt.report.model.api.DesignEngin
e.newSessionHandle(DesignEngine.java:108)
12:10:15,656 INFO [STDOUT] at org.eclipse.birt.report.engine.parser.ReportP
arser.getDesignHandle(ReportParser.java:143)
12:10:15,657 INFO [STDOUT] at org.eclipse.birt.report.engine.api.impl.Repor
tEngineHelper.openReportDesign(ReportEngineHelper. java:251)
12:10:15,661 INFO [STDOUT] at org.eclipse.birt.report.engine.api.impl.Repor
tEngine.openReportDesign(ReportEngine.java:550)
12:10:15,665 INFO [STDOUT] at org.eclipse.birt.report.service.ReportEngineS
ervice.openReportDesign(ReportEngineService.java:3 66)
12:10:15,668 INFO [STDOUT] at org.eclipse.birt.report.utility.BirtUtility.g
etRunnableFromDesignFile(BirtUtility.java:590)
12:10:15,671 INFO [STDOUT] at org.eclipse.birt.report.context.ViewerAttribu
teBean.getDesignHandle(ViewerAttributeBean.java:64 1)
12:10:15,673 INFO [STDOUT] at org.eclipse.birt.report.context.ViewerAttribu
teBean.__init(ViewerAttributeBean.java:227)
12:10:15,676 INFO [STDOUT] at org.eclipse.birt.report.context.BaseAttribute
Bean.init(BaseAttributeBean.java:243)
12:10:15,679 INFO [STDOUT] at org.eclipse.birt.report.context.ViewerAttribu
teBean.<init>(ViewerAttributeBean.java:112)
12:10:15,681 INFO [STDOUT] at org.eclipse.birt.report.context.BirtContext._
_init(BirtContext.java:44)
12:10:15,683 INFO [STDOUT] at org.eclipse.birt.report.context.BaseContext.<
init>(BaseContext.java:69)
12:10:15,686 INFO [STDOUT] at org.eclipse.birt.report.context.BirtContext.<
init>(BirtContext.java:30)
12:10:15,687 INFO [STDOUT] at org.eclipse.birt.report.servlet.ViewerServlet
.__getContext(ViewerServlet.java:150)
12:10:15,689 INFO [STDOUT] at org.eclipse.birt.report.servlet.BirtSoapMessa
geDispatcherServlet.doGet(BirtSoapMessageDispatche rServlet.java:137)
12:10:15,691 INFO [STDOUT] at javax.servlet.http.HttpServlet.service(HttpSe
rvlet.java:697)
12:10:15,693 INFO [STDOUT] at org.apache.axis.transport.http.AxisServletBas
e.service(AxisServletBase.java:327)
12:10:15,696 INFO [STDOUT] at javax.servlet.http.HttpServlet.service(HttpSe
rvlet.java:810)
12:10:15,697 INFO [STDOUT] at org.eclipse.birt.report.servlet.BirtSoapMessa
geDispatcherServlet.service(BirtSoapMessageDispatc herServlet.java:112)
12:10:15,698 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterCha
in.internalDoFilter(ApplicationFilterChain.java:23 7)
12:10:15,702 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterCha
in.doFilter(ApplicationFilterChain.java:157)
12:10:15,703 INFO [STDOUT] at org.eclipse.birt.report.filter.ViewerFilter.d
oFilter(ViewerFilter.java:68)
12:10:15,704 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterCha
in.internalDoFilter(ApplicationFilterChain.java:18 6)
12:10:15,707 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterCha
in.doFilter(ApplicationFilterChain.java:157)
12:10:15,709 INFO [STDOUT] at org.jboss.web.tomcat.filters.ReplyHeaderFilte
r.doFilter(ReplyHeaderFilter.java:75)
12:10:15,712 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterCha
in.internalDoFilter(ApplicationFilterChain.java:18 6)
12:10:15,714 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterCha
in.doFilter(ApplicationFilterChain.java:157)
12:10:15,718 INFO [STDOUT] at org.apache.catalina.core.StandardWrapperValve
.invoke(StandardWrapperValve.java:214)
12:10:15,720 INFO [STDOUT] at org.apache.catalina.core.StandardValveContext
.invokeNext(StandardValveContext.java:104)
12:10:15,721 INFO [STDOUT] at org.apache.catalina.core.StandardPipeline.inv
oke(StandardPipeline.java:520)
12:10:15,725 INFO [STDOUT] at org.apache.catalina.core.StandardContextValve
.invokeInternal(StandardContextValve.java:198)
12:10:15,727 INFO [STDOUT] at org.apache.catalina.core.StandardContextValve
.invoke(StandardContextValve.java:152)
12:10:15,728 INFO [STDOUT] at org.apache.catalina.core.StandardValveContext
.invokeNext(StandardValveContext.java:104)
12:10:15,729 INFO [STDOUT] at org.jboss.web.tomcat.security.CustomPrincipal
Valve.invoke(CustomPrincipalValve.java:44)
12:10:15,730 INFO [STDOUT] at org.apache.catalina.core.StandardValveContext
.invokeNext(StandardValveContext.java:102)
12:10:15,731 INFO [STDOUT] at org.jboss.web.tomcat.security.SecurityAssocia
tionValve.invoke(SecurityAssociationValve.java:169 )
12:10:15,734 INFO [STDOUT] at org.apache.catalina.core.StandardValveContext
.invokeNext(StandardValveContext.java:102)
12:10:15,735 INFO [STDOUT] at org.apache.catalina.core.StandardPipeline.inv
oke(StandardPipeline.java:520)
12:10:15,736 INFO [STDOUT] at org.apache.catalina.core.StandardHostValve.in
voke(StandardHostValve.java:137)
12:10:15,738 INFO [STDOUT] at org.apache.catalina.core.StandardValveContext
.invokeNext(StandardValveContext.java:104)
12:10:15,740 INFO [STDOUT] at org.apache.catalina.valves.ErrorReportValve.i
nvoke(ErrorReportValve.java:118)
12:10:15,741 INFO [STDOUT] at org.apache.catalina.core.StandardValveContext
.invokeNext(StandardValveContext.java:102)
12:10:15,743 INFO [STDOUT] at org.jboss.web.tomcat.tc5.jca.CachedConnection
Valve.invoke(CachedConnectionValve.java:139)
12:10:15,745 INFO [STDOUT] at org.apache.catalina.core.StandardValveContext
.invokeNext(StandardValveContext.java:102)
12:10:15,748 INFO [STDOUT] at org.apache.catalina.core.StandardPipeline.inv
oke(StandardPipeline.java:520)
12:10:15,749 INFO [STDOUT] at org.apache.catalina.core.StandardEngineValve.
invoke(StandardEngineValve.java:109)
12:10:15,751 INFO [STDOUT] at org.apache.catalina.core.StandardValveContext
.invokeNext(StandardValveContext.java:104)
12:10:15,754 INFO [STDOUT] at org.apache.catalina.core.StandardPipeline.inv
oke(StandardPipeline.java:520)
12:10:15,756 INFO [STDOUT] at org.apache.catalina.core.ContainerBase.invoke
(ContainerBase.java:929)
12:10:15,757 INFO [STDOUT] at org.apache.coyote.tomcat5.CoyoteAdapter.servi
ce(CoyoteAdapter.java:160)
12:10:15,760 INFO [STDOUT] at org.apache.coyote.http11.Http11Processor.proc
ess(Http11Processor.java:799)
12:10:15,761 INFO [STDOUT] at org.apache.coyote.http11.Http11Protocol$Http1
1ConnectionHandler.processConnection(Http11Protoco l.java:705)
12:10:15,763 INFO [STDOUT] at org.apache.tomcat.util.net.TcpWorkerThread.ru
nIt(PoolTcpEndpoint.java:577)
12:10:15,766 INFO [STDOUT] at org.apache.tomcat.util.threads.ThreadPool$Con
trolRunnable.run(ThreadPool.java:683)
12:10:15,767 INFO [STDOUT] at java.lang.Thread.run(Thread.java:619)
>>
war application code :
<<
String reportName = req.getParameter("report_name");
EngineConfig engConfig = new EngineConfig();
engConfig.setEngineHome("");
IPlatformContext context = new PlatformServletContext( getServletContext() );
Platform.startup(engConfig);
IReportEngineFactory factory = (IReportEngineFactory) Platform.createFactoryObject( IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTO RY );
IReportEngine engine = factory.createReportEngine( engConfig );
engine.changeLogLevel( Level.WARNING );
IReportRunnable report = engine.openReportDesign("c:/" + reportName);
//Create task to run and render the report,
IRunAndRenderTask task = engine.createRunAndRenderTask(report);
//Set parent classloader for engine
task.getAppContext().put(EngineConstants.APPCONTEX T_CLASSLOADER_KEY, this.getClass().getClassLoader());
//Setup rendering to HTML/Excel
HTMLRenderOption options = new HTMLRenderOption();
options.setOutputStream(resp.getOutputStream());
options.setOutputFormat("html");
resp.setContentType("dummyNameForSaveDialogOpening/Test");
options.setImageDirectory(c:/images);
options.setBaseImageURL("
http://localhost/images");
options.setImageHandler(new HTMLServerImageHandler());
options.setEmbeddable(false);
task.setRenderOption(options);
task.run();
task.close();
engine.destroy();
Platform.shutdown();
>>
If I remove the Platform.shutdown() it works but there are some memory leaks.
So do you have a solution to have a WAR application which is using Birt API and birt viewer on the same application server (jboss or tomcat) ?
Regards,
Blured.