- Home
- DevShare
- Forums
- Wiki
- Products & Services
- Downloads
- Documentation
- Webinars
- Store
- Blog
|
|||
|
I have integrated the birt report engine in my project, and it works fine
with the most reports. However, when I am trying to view a report with a chart in it, it gives errors. At first I thought it was something with my report, but when I use the 'Birt Example Report Combination Chart' it gives the same error. I've tried to debug the code (for the last 2 day's), but couldn't figure it out. The jars located in /reportEngine/lib are copied to my project classpath, and the enginehome is set. I've used the 2_3_1 and 2.5M3 builds, because I noticed that an other version of org.eclipse.emf.ecore (see stack trace) is used in the 2.5M3 build. To startup the engine I use the following code: public void initEngine() throws Exception { EngineConfig config = new EngineConfig(); config.setEngineHome("D:/birt/birt-runtime-2_5_0/ReportEngine"); config.setLogConfig("c:/Program Files/cordys/educator/logs", Level.ALL); HashMap<String, Object> appContext = config.getAppContext(); appContext.put(EngineConstants.APPCONTEXT_CLASSLOADER_KEY, this.getClass().getClassLoader()); config.setAppContext(appContext); Platform.startup(config); IReportEngineFactory factory = (IReportEngineFactory) Platform .createFactoryObject(IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY); m_reportEngine = factory.createReportEngine(config); } To get the html report, I use the following code: Public void getReportHTML(UUID id, OutputStream outputStream) { IRenderOption options = new RenderOption(); options.setOutputFormat("html"); options.setOutputStream(outputStream); HTMLRenderOption htmlOptions = new HTMLRenderOption(options); htmlOptions.setImageHandler(m_reportImageService.getReportImageHandler()); htmlOptions.setHtmlPagination(false); try { String designFileLocation = "c:/reports/designs/"+id.toString()+".rptdesign"; String documentFileLocation = "c:/reports/documents/"+id.toString()+".rptdocument"; IReportRunnable reportRunnable = getReportEngine().openReportDesign(designFileLocation); IRunTask task = getReportEngine().createRunTask(reportRunnable); // here it gives an error task.run(documentFileLocation); IReportDocument rptDoc = getReportEngine().openReportDocument(documentFileLocation); IRenderTask renderTask = getReportEngine().createRenderTask(rptDoc); renderTask.setRenderOption(htmlOptions); renderTask.render(); renderTask.close(); } catch (EngineException e) { e.printStackTrace(); } } the stacktrace: java.lang.NullPointerException org.eclipse.emf.ecore.xml.namespace.impl.XMLNamespacePackageImpl.initializePackageContents(XMLNamespacePackageImpl.java:369) org.eclipse.emf.ecore.xml.namespace.impl.XMLNamespacePackageImpl.init(XMLNamespacePackageImpl.java:144) org.eclipse.emf.ecore.xml.namespace.XMLNamespacePackage.<clinit>XMLNamespacePackage.java:75) org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.addNamespaceDeclarations(XMLSaveImpl.java:879) org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.traverse(XMLSaveImpl.java:604) org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.save(XMLSaveImpl.java:256) org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl.doSave(XMLResourceImpl.java:205) org.eclipse.emf.ecore.resource.impl.ResourceImpl.save(ResourceImpl.java:1344) org.eclipse.birt.chart.model.impl.SerializerImpl.asXml(SerializerImpl.java:185) org.eclipse.birt.chart.reportitem.ChartReportItemImpl.serialize(ChartReportItemImpl.java:250) org.eclipse.birt.report.model.extension.PeerExtensibilityProvider.getReportItemExtensionProperty(PeerExtensibilityProvider.java:312) org.eclipse.birt.report.model.extension.PeerExtensibilityProvider.getExtensionProperty(PeerExtensibilityProvider.java:271) org.eclipse.birt.report.model.extension.PeerExtensibilityProvider.copyFromWithNonElementType(PeerExtensibilityProvider.java:720) org.eclipse.birt.report.model.extension.SimplePeerExtensibilityProvider.copyFromWithNonElementType(SimplePeerExtensibilityProvider.java:159) org.eclipse.birt.report.model.elements.ExtendedItem.baseClone(ExtendedItem.java:774) org.eclipse.birt.report.model.core.DesignElement.doClone(DesignElement.java:2916) org.eclipse.birt.report.model.core.StyledElement.doClone(StyledElement.java:74) org.eclipse.birt.report.model.core.ReferencableStyledElement.doClone(ReferencableStyledElement.java:66) org.eclipse.birt.report.model.elements.ExtendedItem.doClone(ExtendedItem.java:754) org.eclipse.birt.report.model.core.MultiElementSlot.doClone(MultiElementSlot.java:53) org.eclipse.birt.report.model.core.ContainerSlot.copy(ContainerSlot.java:203) org.eclipse.birt.report.model.core.DesignElement.doClone(DesignElement.java:2969) org.eclipse.birt.report.model.core.StyledElement.doClone(StyledElement.java:74) org.eclipse.birt.report.model.core.MultiElementSlot.doClone(MultiElementSlot.java:53) org.eclipse.birt.report.model.core.ContainerSlot.copy(ContainerSlot.java:203) org.eclipse.birt.report.model.core.DesignElement.doClone(DesignElement.java:2969) org.eclipse.birt.report.model.core.StyledElement.doClone(StyledElement.java:74) org.eclipse.birt.report.model.core.MultiElementSlot.doClone(MultiElementSlot.java:53) org.eclipse.birt.report.model.core.ContainerSlot.copy(ContainerSlot.java:203) org.eclipse.birt.report.model.core.DesignElement.doClone(DesignElement.java:2969) org.eclipse.birt.report.model.core.StyledElement.doClone(StyledElement.java:74) org.eclipse.birt.report.model.core.ReferencableStyledElement.doClone(ReferencableStyledElement.java:66) org.eclipse.birt.report.model.core.MultiElementSlot.doClone(MultiElementSlot.java:53) org.eclipse.birt.report.model.core.ContainerSlot.copy(ContainerSlot.java:203) org.eclipse.birt.report.model.core.DesignElement.doClone(DesignElement.java:2969) org.eclipse.birt.report.model.core.Module.doClone(Module.java:757) org.eclipse.birt.report.model.api.ModuleHandle.copy(ModuleHandle.java:3265) org.eclipse.birt.report.engine.api.impl.ReportRunnable.cloneRunnable(ReportRunnable.java:202) org.eclipse.birt.report.engine.api.impl.EngineTask.prepareDesign(EngineTask.java:1324) org.eclipse.birt.report.engine.api.impl.RunTask.doRun(RunTask.java:196) org.eclipse.birt.report.engine.api.impl.RunTask.run(RunTask.java:90) I really can't find out why theXMLTypePackage in XMLNamespacePackageImpl.initializePackageContents is null, mainly because i don't know why and how the emf.ecore package is integrated within the birt project. Is there anyone who can explain me how and why the emf.ecore package is used, and maybe solve the problem? |
|
|||
|
Can you try the engine example located here:
http://wiki.eclipse.org/RCP_Example_%28BIRT%29_2.1 This is an older example, but the only thing you should have to do is remove this section: // Set Render context to handle url and image locataions HTMLRenderContext renderContext = new HTMLRenderContext(); renderContext.setImageDirectory("c:/test/image"); HashMap<String, HTMLRenderContext> contextMap = new HashMap<String, HTMLRenderContext>(); contextMap.put( EngineConstants.APPCONTEXT_HTML_RENDER_CONTEXT, renderContext ); task.setAppContext(contextMap); Use the HTMLRenderOption class to set the image directory. I just tried this with 2.3.1 and it works for me. What version did you get the stack trace from? The Chart engine uses emf to create and store the chart model. Verify that you are not trying to open a 2.5 report with 2.3. Jason Bart Duim wrote: > I have integrated the birt report engine in my project, and it works > fine with the most reports. However, when I am trying to view a report > with a chart in it, it gives errors. At first I thought it was > something with my report, but when I use the 'Birt Example Report > Combination Chart' it gives the same error. > I've tried to debug the code (for the last 2 day's), but couldn't figure > it out. > > The jars located in /reportEngine/lib are copied to my project > classpath, and the enginehome is set. > > I've used the 2_3_1 and 2.5M3 builds, because I noticed that an other > version of org.eclipse.emf.ecore (see stack trace) is used in the 2.5M3 > build. > > > To startup the engine I use the following code: > > > public void initEngine() throws Exception { > > EngineConfig config = new EngineConfig(); > config.setEngineHome("D:/birt/birt-runtime-2_5_0/ReportEngine"); > config.setLogConfig("c:/Program Files/cordys/educator/logs", > Level.ALL); > > HashMap<String, Object> appContext = config.getAppContext(); > appContext.put(EngineConstants.APPCONTEXT_CLASSLOADER_KEY, > this.getClass().getClassLoader()); > config.setAppContext(appContext); > > Platform.startup(config); > IReportEngineFactory factory = (IReportEngineFactory) Platform > > .createFactoryObject(IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY); > m_reportEngine = factory.createReportEngine(config); > } > > > To get the html report, I use the following code: > > > Public void getReportHTML(UUID id, OutputStream outputStream) { > > IRenderOption options = new RenderOption(); > options.setOutputFormat("html"); > options.setOutputStream(outputStream); > > HTMLRenderOption htmlOptions = new HTMLRenderOption(options); > > htmlOptions.setImageHandler(m_reportImageService.getReportImageHandler()); > > htmlOptions.setHtmlPagination(false); > > try { > String designFileLocation = > "c:/reports/designs/"+id.toString()+".rptdesign"; > String documentFileLocation = > "c:/reports/documents/"+id.toString()+".rptdocument"; > > IReportRunnable reportRunnable = > getReportEngine().openReportDesign(designFileLocation); > > IRunTask task = getReportEngine().createRunTask(reportRunnable); > > // here it gives an error > task.run(documentFileLocation); > > IReportDocument rptDoc = > getReportEngine().openReportDocument(documentFileLocation); > IRenderTask renderTask = > getReportEngine().createRenderTask(rptDoc); > > renderTask.setRenderOption(htmlOptions); > renderTask.render(); > renderTask.close(); > } catch (EngineException e) { > e.printStackTrace(); > } > } > > > the stacktrace: > > java.lang.NullPointerException > org.eclipse.emf.ecore.xml.namespace.impl.XMLNamespacePackageImpl.initializePackageContents(XMLNamespacePackageImpl.java:369) > org.eclipse.emf.ecore.xml.namespace.impl.XMLNamespacePackageImpl.init(XMLNamespacePackageImpl.java:144) > > org.eclipse.emf.ecore.xml.namespace.XMLNamespacePackage.<clinit>XMLNamespacePackage.java:75) > > org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.addNamespaceDeclarations(XMLSaveImpl.java:879) > > org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.traverse(XMLSaveImpl.java:604) > org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.save(XMLSaveImpl.java:256) > org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl.doSave(XMLResourceImpl.java:205) > > org.eclipse.emf.ecore.resource.impl.ResourceImpl.save(ResourceImpl.java:1344) > > org.eclipse.birt.chart.model.impl.SerializerImpl.asXml(SerializerImpl.java:185) > > org.eclipse.birt.chart.reportitem.ChartReportItemImpl.serialize(ChartReportItemImpl.java:250) > > org.eclipse.birt.report.model.extension.PeerExtensibilityProvider.getReportItemExtensionProperty(PeerExtensibilityProvider.java:312) > > org.eclipse.birt.report.model.extension.PeerExtensibilityProvider.getExtensionProperty(PeerExtensibilityProvider.java:271) > > org.eclipse.birt.report.model.extension.PeerExtensibilityProvider.copyFromWithNonElementType(PeerExtensibilityProvider.java:720) > > org.eclipse.birt.report.model.extension.SimplePeerExtensibilityProvider.copyFromWithNonElementType(SimplePeerExtensibilityProvider.java:159) > > org.eclipse.birt.report.model.elements.ExtendedItem.baseClone(ExtendedItem.java:774) > > org.eclipse.birt.report.model.core.DesignElement.doClone(DesignElement.java:2916) > > org.eclipse.birt.report.model.core.StyledElement.doClone(StyledElement.java:74) > > org.eclipse.birt.report.model.core.ReferencableStyledElement.doClone(ReferencableStyledElement.java:66) > > org.eclipse.birt.report.model.elements.ExtendedItem.doClone(ExtendedItem.java:754) > > org.eclipse.birt.report.model.core.MultiElementSlot.doClone(MultiElementSlot.java:53) > > org.eclipse.birt.report.model.core.ContainerSlot.copy(ContainerSlot.java:203) > > org.eclipse.birt.report.model.core.DesignElement.doClone(DesignElement.java:2969) > > org.eclipse.birt.report.model.core.StyledElement.doClone(StyledElement.java:74) > > org.eclipse.birt.report.model.core.MultiElementSlot.doClone(MultiElementSlot.java:53) > > org.eclipse.birt.report.model.core.ContainerSlot.copy(ContainerSlot.java:203) > > org.eclipse.birt.report.model.core.DesignElement.doClone(DesignElement.java:2969) > > org.eclipse.birt.report.model.core.StyledElement.doClone(StyledElement.java:74) > > org.eclipse.birt.report.model.core.MultiElementSlot.doClone(MultiElementSlot.java:53) > > org.eclipse.birt.report.model.core.ContainerSlot.copy(ContainerSlot.java:203) > > org.eclipse.birt.report.model.core.DesignElement.doClone(DesignElement.java:2969) > > org.eclipse.birt.report.model.core.StyledElement.doClone(StyledElement.java:74) > > org.eclipse.birt.report.model.core.ReferencableStyledElement.doClone(ReferencableStyledElement.java:66) > > org.eclipse.birt.report.model.core.MultiElementSlot.doClone(MultiElementSlot.java:53) > > org.eclipse.birt.report.model.core.ContainerSlot.copy(ContainerSlot.java:203) > > org.eclipse.birt.report.model.core.DesignElement.doClone(DesignElement.java:2969) > > org.eclipse.birt.report.model.core.Module.doClone(Module.java:757) > org.eclipse.birt.report.model.api.ModuleHandle.copy(ModuleHandle.java:3265) > org.eclipse.birt.report.engine.api.impl.ReportRunnable.cloneRunnable(ReportRunnable.java:202) > > org.eclipse.birt.report.engine.api.impl.EngineTask.prepareDesign(EngineTask.java:1324) > > org.eclipse.birt.report.engine.api.impl.RunTask.doRun(RunTask.java:196) > org.eclipse.birt.report.engine.api.impl.RunTask.run(RunTask.java:90) > > > I really can't find out why theXMLTypePackage in > XMLNamespacePackageImpl.initializePackageContents is null, mainly > because i don't know why and how the emf.ecore package is integrated > within the birt project. > > Is there anyone who can explain me how and why the emf.ecore package is > used, and maybe solve the problem? > > > |
|
|||
|
http://wiki.eclipse.org/ seems to be down (I get a blank page), so I can't
try the engine example. My code is based on the information at http://www.eclipse.org/birt/phoenix/...tEngineAPI.php, with some minor modifications. The report I use is the report located at http://www.eclipse.org/birt/phoenix/...hart/index.php but I get the same error with reports I created with the 3.2.1 standalone designer. The complete stacktrace stated below is from 2.5M3, the stacktrace in my previous post is from 2.3.1 Some more information about the project: The project I work in runs on the Springsource DM server, it is an OSGI project that uses the Spring Framework with Hibernate at the backend, and Wicket at the front. I've added the lib files in the ReportEngine/lib folder to my OSGI bundle. I couldn't get it working by using the OSGI packages from the Birt project, because the Springsource DM server did not understand a lot of statements in the manifest that are specific for Eclipse. I could rewrite all the manifests, but that would take too much of my time. stacktrace from 2.5M3: java.lang.ExceptionInInitializerError at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.addNamespaceDeclarations(XMLSaveImpl.java:879) at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.traverse(XMLSaveImpl.java:604) at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.save(XMLSaveImpl.java:256) at org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl.doSave(XMLResourceImpl.java:205) at org.eclipse.emf.ecore.resource.impl.ResourceImpl.save(ResourceImpl.java:1343) at org.eclipse.birt.chart.model.impl.SerializerImpl.asXml(SerializerImpl.java:185) at org.eclipse.birt.chart.reportitem.ChartReportItemImpl.serialize(ChartReportItemImpl.java:256) at org.eclipse.birt.report.model.extension.PeerExtensibilityProvider.hasLocalPropertyValuesOnOwnModel(PeerExtensibilityProvider.java:825) at org.eclipse.birt.report.model.elements.ExtendedItem.hasLocalPropertyValuesOnOwnModel(ExtendedItem.java:523) at org.eclipse.birt.report.model.writer.ModuleWriter.visitExtendedItem(ModuleWriter.java:1737) at org.eclipse.birt.report.model.elements.ExtendedItem.apply(ExtendedItem.java:137) at org.eclipse.birt.report.model.writer.ModuleWriter.writeContents(ModuleWriter.java:2627) at org.eclipse.birt.report.model.writer.ModuleWriter.writeContents(ModuleWriter.java:2648) at org.eclipse.birt.report.model.writer.ModuleWriter.visitCell(ModuleWriter.java:2078) at org.eclipse.birt.report.model.elements.Cell.apply(Cell.java:81) at org.eclipse.birt.report.model.writer.ModuleWriter.writeContents(ModuleWriter.java:2627) at org.eclipse.birt.report.model.writer.ModuleWriter.writeContents(ModuleWriter.java:2648) at org.eclipse.birt.report.model.writer.ModuleWriter.visitRow(ModuleWriter.java:2032) at org.eclipse.birt.report.model.elements.TableRow.apply(TableRow.java:75) at org.eclipse.birt.report.model.writer.ModuleWriter.writeContents(ModuleWriter.java:2627) at org.eclipse.birt.report.model.writer.ModuleWriter.writeContents(ModuleWriter.java:2648) at org.eclipse.birt.report.model.writer.ModuleWriter.visitGrid(ModuleWriter.java:2105) at org.eclipse.birt.report.model.elements.GridItem.apply(GridItem.java:121) at org.eclipse.birt.report.model.writer.ModuleWriter.writeContents(ModuleWriter.java:2627) at org.eclipse.birt.report.model.writer.ModuleWriter.writeContents(ModuleWriter.java:2648) at org.eclipse.birt.report.model.writer.DesignWriter.visitReportDesign(DesignWriter.java:140) at org.eclipse.birt.report.model.elements.ReportDesign.apply(ReportDesign.java:89) at org.eclipse.birt.report.model.writer.ModuleWriter.writeFile(ModuleWriter.java:306) at org.eclipse.birt.report.model.writer.DocumentWriter.write(DocumentWriter.java:60) at org.eclipse.birt.report.model.api.util.DocumentUtil.serialize(DocumentUtil.java:63) at org.eclipse.birt.report.engine.api.impl.ReportDocumentWriter.saveDesign(ReportDocumentWriter.java:177) at org.eclipse.birt.report.engine.api.impl.RunTask.doRun(RunTask.java:201) at org.eclipse.birt.report.engine.api.impl.RunTask.run(RunTask.java:90) at reporting.service.impl.ReportHtmlServiceImpl.getReportHTML(ReportHtmlServiceImpl.java:64) at reporting.ui.wicket.Resource.ReportHtmlResource.getResourceState(ReportHtmlResource.java:59) at org.apache.wicket.markup.html.DynamicWebResource$1.checkLoadData(DynamicWebResource.java:265) at org.apache.wicket.markup.html.DynamicWebResource$1.getContentType(DynamicWebResource.java:207) at org.apache.wicket.request.target.resource.ResourceStreamRequestTarget.configure(ResourceStreamRequestTarget.java:189) at org.apache.wicket.request.target.resource.ResourceStreamRequestTarget.respond(ResourceStreamRequestTarget.java:137) at org.apache.wicket.request.AbstractRequestCycleProcessor.respond(AbstractRequestCycleProcessor.java:104) at org.apache.wicket.RequestCycle.respond(RequestCycle.java:1186) at org.apache.wicket.RequestCycle.step(RequestCycle.java:1253) at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1349) at org.apache.wicket.RequestCycle.request(RequestCycle.java:493) at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:387) at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:199) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:359) at org.springframework.security.ui.rememberme.RememberMeProcessingFilter.doFilterHttp(RememberMeProcessingFilter.java:116) at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371) at org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235) at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371) at org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:174) at org.springframework.security.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:99) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.valves.CometConnectionManagerValve.invoke(CometConnectionManagerValve.java:248) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at com.springsource.server.servlet.tomcat.internal.ApplicationNameTrackingValve.invoke(ApplicationNameTrackingValve.java:74) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:354) at com.springsource.server.concurrent.core.ExecutorServiceDelegate$StatisticsGatheringRunnable.run(ExecutorServiceDelegate.java:137) at com.springsource.server.concurrent.core.ServerThreadPoolExecutor$1.run(ServerThreadPoolExecutor.java:145) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.NullPointerException at org.eclipse.emf.ecore.xml.namespace.impl.XMLNamespacePackageImpl.initializePackageContents(XMLNamespacePackageImpl.java:369) at org.eclipse.emf.ecore.xml.namespace.impl.XMLNamespacePackageImpl.init(XMLNamespacePackageImpl.java:144) at org.eclipse.emf.ecore.xml.namespace.XMLNamespacePackage.<clinit>(XMLNamespacePackage.java:75) ... 81 more Jason Weathersby wrote: > Can you try the engine example located here: > http://wiki.eclipse.org/RCP_Example_%28BIRT%29_2.1 > This is an older example, but the only thing you should have to do is > remove this section: > // Set Render context to handle url and image locataions > HTMLRenderContext renderContext = new HTMLRenderContext(); > renderContext.setImageDirectory("c:/test/image"); > HashMap<String, HTMLRenderContext> contextMap = new HashMap<String, > HTMLRenderContext>(); > contextMap.put( EngineConstants.APPCONTEXT_HTML_RENDER_CONTEXT, > renderContext ); > task.setAppContext(contextMap); > Use the HTMLRenderOption class to set the image directory. > I just tried this with 2.3.1 and it works for me. What version did you > get the stack trace from? The Chart engine uses emf to create and store > the chart model. Verify that you are not trying to open a 2.5 report > with 2.3. > Jason |
|
|||
|
Bart,
You may need to log a bug for this. The BIRT runtime requires all the BIRT plugins, plus many of the Eclipse Platform, EMF, and GEF plugins to function. I tried the wiki page and it is up. Can you try again? Jason Bart Duim wrote: > http://wiki.eclipse.org/ seems to be down (I get a blank page), so I > can't try the engine example. > My code is based on the information at > http://www.eclipse.org/birt/phoenix/...tEngineAPI.php, with > some minor modifications. > The report I use is the report located at > http://www.eclipse.org/birt/phoenix/...hart/index.php > but I get the same error with reports I created with the 3.2.1 > standalone designer. > > The complete stacktrace stated below is from 2.5M3, the stacktrace in my > previous post is from 2.3.1 > > Some more information about the project: > The project I work in runs on the Springsource DM server, it is an OSGI > project that uses the Spring Framework with Hibernate at the backend, > and Wicket at the front. I've added the lib files in the > ReportEngine/lib folder to my OSGI bundle. > I couldn't get it working by using the OSGI packages from the Birt > project, because the Springsource DM server did not understand a lot of > statements in the manifest that are specific for Eclipse. I could > rewrite all the manifests, but that would take too much of my time. > > stacktrace from 2.5M3: > java.lang.ExceptionInInitializerError > at > org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.addNamespaceDeclarations(XMLSaveImpl.java:879) > > at > org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.traverse(XMLSaveImpl.java:604) > at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.save(XMLSaveImpl.java:256) > at > org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl.doSave(XMLResourceImpl.java:205) > > at > org.eclipse.emf.ecore.resource.impl.ResourceImpl.save(ResourceImpl.java:1343) > > at > org.eclipse.birt.chart.model.impl.SerializerImpl.asXml(SerializerImpl.java:185) > > at > org.eclipse.birt.chart.reportitem.ChartReportItemImpl.serialize(ChartReportItemImpl.java:256) > > at > org.eclipse.birt.report.model.extension.PeerExtensibilityProvider.hasLocalPropertyValuesOnOwnModel(PeerExtensibilityProvider.java:825) > > at > org.eclipse.birt.report.model.elements.ExtendedItem.hasLocalPropertyValuesOnOwnModel(ExtendedItem.java:523) > > at > org.eclipse.birt.report.model.writer.ModuleWriter.visitExtendedItem(ModuleWriter.java:1737) > > at > org.eclipse.birt.report.model.elements.ExtendedItem.apply(ExtendedItem.java:137) > > at > org.eclipse.birt.report.model.writer.ModuleWriter.writeContents(ModuleWriter.java:2627) > > at > org.eclipse.birt.report.model.writer.ModuleWriter.writeContents(ModuleWriter.java:2648) > > at > org.eclipse.birt.report.model.writer.ModuleWriter.visitCell(ModuleWriter.java:2078) > > at org.eclipse.birt.report.model.elements.Cell.apply(Cell.java:81) > at > org.eclipse.birt.report.model.writer.ModuleWriter.writeContents(ModuleWriter.java:2627) > > at > org.eclipse.birt.report.model.writer.ModuleWriter.writeContents(ModuleWriter.java:2648) > > at > org.eclipse.birt.report.model.writer.ModuleWriter.visitRow(ModuleWriter.java:2032) > > at org.eclipse.birt.report.model.elements.TableRow.apply(TableRow.java:75) > at > org.eclipse.birt.report.model.writer.ModuleWriter.writeContents(ModuleWriter.java:2627) > > at > org.eclipse.birt.report.model.writer.ModuleWriter.writeContents(ModuleWriter.java:2648) > > at > org.eclipse.birt.report.model.writer.ModuleWriter.visitGrid(ModuleWriter.java:2105) > > at org.eclipse.birt.report.model.elements.GridItem.apply(GridItem.java:121) > at > org.eclipse.birt.report.model.writer.ModuleWriter.writeContents(ModuleWriter.java:2627) > > at > org.eclipse.birt.report.model.writer.ModuleWriter.writeContents(ModuleWriter.java:2648) > > at > org.eclipse.birt.report.model.writer.DesignWriter.visitReportDesign(DesignWriter.java:140) > > at > org.eclipse.birt.report.model.elements.ReportDesign.apply(ReportDesign.java:89) > > at > org.eclipse.birt.report.model.writer.ModuleWriter.writeFile(ModuleWriter.java:306) > > at > org.eclipse.birt.report.model.writer.DocumentWriter.write(DocumentWriter.java:60) > > at > org.eclipse.birt.report.model.api.util.DocumentUtil.serialize(DocumentUtil.java:63) > > at > org.eclipse.birt.report.engine.api.impl.ReportDocumentWriter.saveDesign(ReportDocumentWriter.java:177) > > at org.eclipse.birt.report.engine.api.impl.RunTask.doRun(RunTask.java:201) > at org.eclipse.birt.report.engine.api.impl.RunTask.run(RunTask.java:90) > at > reporting.service.impl.ReportHtmlServiceImpl.getReportHTML(ReportHtmlServiceImpl.java:64) > > at > reporting.ui.wicket.Resource.ReportHtmlResource.getResourceState(ReportHtmlResource.java:59) > > at > org.apache.wicket.markup.html.DynamicWebResource$1.checkLoadData(DynamicWebResource.java:265) > > at > org.apache.wicket.markup.html.DynamicWebResource$1.getContentType(DynamicWebResource.java:207) > > at > org.apache.wicket.request.target.resource.ResourceStreamRequestTarget.configure(ResourceStreamRequestTarget.java:189) > > at > org.apache.wicket.request.target.resource.ResourceStreamRequestTarget.respond(ResourceStreamRequestTarget.java:137) > > at > org.apache.wicket.request.AbstractRequestCycleProcessor.respond(AbstractRequestCycleProcessor.java:104) > > at org.apache.wicket.RequestCycle.respond(RequestCycle.java:1186) > at org.apache.wicket.RequestCycle.step(RequestCycle.java:1253) > at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1349) > at org.apache.wicket.RequestCycle.request(RequestCycle.java:493) > at > org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:387) > at > org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:199) > > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > > at > org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198) > > at > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) > > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > > at > org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:359) > > at > org.springframework.security.ui.rememberme.RememberMeProcessingFilter.doFilterHttp(RememberMeProcessingFilter.java:116) > > at > org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) > > at > org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371) > > at > org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235) > > at > org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) > > at > org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371) > > at > org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:174) > > at > org.springframework.security.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:99) > > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) > > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) > > at > org.apache.catalina.valves.CometConnectionManagerValve.invoke(CometConnectionManagerValve.java:248) > > at > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) > > at > com.springsource.server.servlet.tomcat.internal.ApplicationNameTrackingValve.invoke(ApplicationNameTrackingValve.java:74) > > at > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) > > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) > > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) > at > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) > > at > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:354) > > at > com.springsource.server.concurrent.core.ExecutorServiceDelegate$StatisticsGatheringRunnable.run(ExecutorServiceDelegate.java:137) > > at > com.springsource.server.concurrent.core.ServerThreadPoolExecutor$1.run(ServerThreadPoolExecutor.java:145) > > at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) > at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) > at java.lang.Thread.run(Unknown Source) > > Caused by: java.lang.NullPointerException > at > org.eclipse.emf.ecore.xml.namespace.impl.XMLNamespacePackageImpl.initializePackageContents(XMLNamespacePackageImpl.java:369) > > at > org.eclipse.emf.ecore.xml.namespace.impl.XMLNamespacePackageImpl.init(XMLNamespacePackageImpl.java:144) > > at > org.eclipse.emf.ecore.xml.namespace.XMLNamespacePackage.<clinit>(XMLNamespacePackage.java:75) > > .. 81 more > > Jason Weathersby wrote: >> Can you try the engine example located here: >> http://wiki.eclipse.org/RCP_Example_%28BIRT%29_2.1 >> This is an older example, but the only thing you should have to do is >> remove this section: > >> // Set Render context to handle url and image locataions >> HTMLRenderContext renderContext = new HTMLRenderContext(); >> renderContext.setImageDirectory("c:/test/image"); >> HashMap<String, HTMLRenderContext> contextMap = new HashMap<String, >> HTMLRenderContext>(); >> contextMap.put( EngineConstants.APPCONTEXT_HTML_RENDER_CONTEXT, >> renderContext ); >> task.setAppContext(contextMap); > >> Use the HTMLRenderOption class to set the image directory. > >> I just tried this with 2.3.1 and it works for me. What version did >> you get the stack trace from? The Chart engine uses emf to create and >> store the chart model. Verify that you are not trying to open a 2.5 >> report with 2.3. > >> Jason > |
| Thread Tools | |
| Display Modes | |
|
|