Discussions
Categories
Groups
Community Home
Categories
INTERNAL ENABLEMENT
POPULAR
THRUST SERVICES & TOOLS
CLOUD EDITIONS
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());