Discussions
Categories
Groups
Community Home
Categories
INTERNAL ENABLEMENT
POPULAR
PUBLIC CLOUD
PRIVATE CLOUD
Quick Links
MY LINKS
HELPFUL TIPS
Back to website
Home
Intelligence (Analytics)
How to reference libary correctly while use report engine to generate report
bitisony
I want to use BIRT report engine to generate report,
my report design is at the path "com/trapeze/appl/rm/server/reports", named "
APAvailabilityReport.rptdesign".
My report library is at the path "com/trapeze/appl/shared/reports/", named "report.rptlibrary".
By the way, if the report design references to library using absolute path, as:
"c:tempreport.rptlibrary", it works well.
In the APAVailabilityReport.rptdesign, it uses library as:
<list-property name="libraries">
<structure>
<property name="fileName">com/trapeze/appl/shared/reports/report.rptlibrary</property>
<property name="namespace">report</property>
</structure>
</list-property>
My source code is:
design =
_engine
.openReportDesign(Thread.currentThread()
.getContextClassLoader().getResourceAsStream(
getReportDesign(reportClassName,
ReportFormat.HTML)));
======================================
The error message is :
Caused by: java.lang.AssertionError
at org.eclipse.birt.report.model.parser.OverriddenValuesState.<init>(OverriddenValuesState.java:62)
at org.eclipse.birt.report.model.parser.ReportElementState.startElement(ReportElementState.java:746)
at org.eclipse.birt.report.model.parser.SimpleMasterPageState.startElement(SimpleMasterPageState.java:66)
at org.eclipse.birt.report.model.parser.ModuleParserHandler.startElement(ModuleParserHandler.java:228)
at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:395)
at org.eclipse.birt.report.model.parser.ModuleReader.readModule(ModuleReader.java:94)
at org.eclipse.birt.report.model.parser.DesignReader.read(DesignReader.java:88)
at org.eclipse.birt.report.model.core.DesignSession.openDesign(DesignSession.java:321)
at org.eclipse.birt.report.model.api.SessionHandle.openDesign(SessionHandle.java:294)
at org.eclipse.birt.report.engine.parser.ReportParser.getDesignHandle(ReportParser.java:158)
at org.eclipse.birt.report.engine.api.impl.ReportEngineHelper.openReportDesign(ReportEngineHelper.java:253)
at org.eclipse.birt.report.engine.api.impl.ReportEngineHelper.openReportDesign(ReportEngineHelper.java:181)
at org.eclipse.birt.report.engine.api.impl.ReportEngineHelper.openReportDesign(ReportEngineHelper.java:158)
at org.eclipse.birt.report.engine.api.impl.ReportEngine.openReportDesign(ReportEngine.java:388)
at com.trapeze.appl.shared.intrfc.reports.AbstractReportGenerator.test(AbstractReportGenerator.java:350)
at com.trapeze.appl.shared.intrfc.reports.AbstractReportGenerator.generateReport(AbstractReportGenerator.java:217)
at com.trapeze.appl.shared.intrfc.reports.AbstractReportGenerator.generateReportNow(AbstractReportGenerator.java:118)
at com.trapeze.appl.shared.intrfc.reports.AbstractServerReportGenerator.generateReport(AbstractServerReportGenerator.java:72)
at com.trapeze.appl.shared.reports.ReportService$1.generate(ReportService.java:54)
at com.trapeze.appl.shared.reports.ReportService.generateReport(ReportService.java:295)
at com.trapeze.appl.shared.reports.ReportService.generateReport(ReportService.java:217)
at com.trapeze.appl.shared.reports.ReportServlet.generateReport(ReportServlet.java:31)
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 com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:180)
at com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:109)
at com.caucho.hessian.server.HessianServlet.service(HessianServlet.java:396)
at com.trapeze.fw.services.server.HessianServiceServlet.service(HessianServiceServlet.java:93)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:427)
at org.mortbay.jetty.servlet.ServletHandler.dispatch(ServletHandler.java:654)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:556)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1563)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1515)
at org.mortbay.http.HttpServer.service(HttpServer.java:956)
at org.mortbay.http.HttpConnection.service(HttpConnection.java:814)
at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:981)
at org.mortbay.http.HttpConnection.handle(HttpConnection.java:831)
at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:244)
at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
Find more posts tagged with
Comments
Virgil Dodson
Hi bitisony,
Have you tried using the setResourcePath method?
engineConfig.setResourcePath("com/trapeze/appl/shared/reports")
or
engineConfig.setResourcePath(new File("com/trapeze/appl/shared/reports").getAbsolutePath());