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)
Birt viewer 3.7 failed to call Stored Procedure Query
fachru
Hi,<br />
<br />
Previously I used birt-viewer 2.3.1. because of some issue like in Internet Explorer 9, Need to press compatibility View mode to make the report run. I'm plan to upgrade to 3.7 viewer(a couples days ago 4.2 not yet release). All the .rptdesign file is work in 2.3.1. some report use general query inside .rptdesign, some mix with view and some report calling Stored Procedure. I found out that only report calling Stored Procedure produce an exception. All report is build in Birt report designer 2.3.1. report using JDBC Data Source and connect to MS SQL Server using jtds 1.2.5 driver.<br />
<br />
*sorry for bad English.<br />
Thanks,<br />
<br />
<br />
the exception in log is as below:<br />
<blockquote class='ipsBlockquote' ><p>Jun 28, 2012 11:10:49 AM org.eclipse.birt.report.engine.api.impl.RunTask doRun<br />
SEVERE: An error happened while running the report. Cause:<br />
java.lang.ClassCastException: org.eclipse.birt.data.engine.api.querydefn.ConditionalExpression cannot be cast to org.eclipse.birt.data.engine.api.IScriptExpression<br />
at org.eclipse.birt.data.engine.impl.PreparedQueryUtil.copyScriptExpr(PreparedQueryUtil.java:633)<br />
at org.eclipse.birt.data.engine.impl.PreparedQueryUtil.addParentBindings(PreparedQueryUtil.java:612)<br />
at org.eclipse.birt.data.engine.impl.PreparedQueryUtil.mappingParentColumnBinding(PreparedQueryUtil.java:588)<br />
at org.eclipse.birt.data.engine.impl.PreparedQuery.prepare(PreparedQuery.java:196)<br />
at org.eclipse.birt.data.engine.impl.PreparedQuery.<init>(PreparedQuery.java:122)<br />
at org.eclipse.birt.data.engine.impl.PreparedSubquery.<init>(PreparedSubquery.java:92)<br />
at org.eclipse.birt.data.engine.impl.PreparedQuery.prepareGroup(PreparedQuery.java:280)<br />
at org.eclipse.birt.data.engine.impl.PreparedQuery.prepare(PreparedQuery.java:200)<br />
at org.eclipse.birt.data.engine.impl.PreparedQuery.<init>(PreparedQuery.java:122)<br />
at org.eclipse.birt.data.engine.impl.PreparedDataSourceQuery.<init>(PreparedDataSourceQuery.java:75)<br />
at org.eclipse.birt.data.engine.impl.PreparedOdaDSQuery.<init>(PreparedOdaDSQuery.java:67)<br />
at org.eclipse.birt.data.engine.impl.PreparedQueryUtil.newInstance(PreparedQueryUtil.java:186)<br />
at org.eclipse.birt.data.engine.impl.DataEngineImpl.prepare(DataEngineImpl.java:403)<br />
at org.eclipse.birt.report.data.adapter.impl.DataRequestSessionImpl.prepare(DataRequestSessionImpl.java:465)<br />
at org.eclipse.birt.report.data.adapter.impl.DataRequestSessionImpl.prepare(DataRequestSessionImpl.java:656)<br />
at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.doPrepareQuery(AbstractDataEngine.java:218)<br />
at org.eclipse.birt.report.engine.data.dte.DteDataEngine.doPrepareQuery(DteDataEngine.java:272)<br />
at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.prepare(AbstractDataEngine.java:182)<br />
at org.eclipse.birt.report.engine.executor.ReportExecutor.execute(ReportExecutor.java:122)<br />
at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportExecutor.execute(WrappedReportExecutor.java:60)<br />
at org.eclipse.birt.report.engine.internal.executor.emitter.ReportEmitterExecutor.execute(ReportEmitterExecutor.java:71)<br />
at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportExecutor.execute(WrappedReportExecutor.java:60)<br />
at org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplciateReportExecutor.execute(SuppressDuplciateReportExecutor.java:42)<br />
at org.eclipse.birt.report.engine.presentation.ReportDocumentBuilder.build(ReportDocumentBuilder.java:234)<br />
at org.eclipse.birt.report.engine.api.impl.RunTask.doRun(RunTask.java:260)<br />
at org.eclipse.birt.report.engine.api.impl.RunTask.run(RunTask.java:85)<br />
at org.eclipse.birt.report.service.ReportEngineService.runReport(ReportEngineService.java:1317)<br />
at org.eclipse.birt.report.service.BirtViewerReportService.runReport(BirtViewerReportService.java:158)<br />
at org.eclipse.birt.report.service.actionhandler.BirtRunReportActionHandler.__execute(BirtRunReportActionHandler.java:81)<br />
at org.eclipse.birt.report.service.actionhandler.BirtGetPageActionHandler.__checkDocumentExists(BirtGetPageActionHandler.java:58)<br />
at org.eclipse.birt.report.service.actionhandler.AbstractGetPageActionHandler.prepareParameters(AbstractGetPageActionHandler.java:119)<br />
at org.eclipse.birt.report.service.actionhandler.AbstractGetPageActionHandler.__execute(AbstractGetPageActionHandler.java:104)<br />
at org.eclipse.birt.report.service.actionhandler.AbstractBaseActionHandler.execute(AbstractBaseActionHandler.java:90)<br />
at org.eclipse.birt.report.soapengine.processor.AbstractBaseDocumentProcessor.__executeAction(AbstractBaseDocumentProcessor.java:47)<br />
at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.executeAction(AbstractBaseComponentProcessor.java:143)<br />
at org.eclipse.birt.report.soapengine.processor.BirtDocumentProcessor.handleGetPage(BirtDocumentProcessor.java:87)<br />
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br />
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)<br />
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)<br />
at java.lang.reflect.Method.invoke(Unknown Source)<br />
at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.process(AbstractBaseComponentProcessor.java:112)<br />
at org.eclipse.birt.report.soapengine.endpoint.BirtSoapBindingImpl.getUpdatedObjects(BirtSoapBindingImpl.java:66)<br />
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br />
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)<br />
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)<br />
at java.lang.reflect.Method.invoke(Unknown Source)<br />
at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)<br />
at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)<br />
at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)<br />
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)<br />
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)<br />
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)<br />
at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)<br />
at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)<br />
at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)<br />
at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.doPost(BirtSoapMessageDispatcherServlet.java:265)<br />
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)<br />
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)<br />
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)<br />
at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.service(BirtSoapMessageDispatcherServlet.java:122)<br />
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)<br />
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)<br />
at org.eclipse.birt.report.filter.ViewerFilter.doFilter(ViewerFilter.java:68)<br />
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)<br />
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)<br />
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)<br />
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)<br />
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)<br />
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)<br />
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)<br />
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)<br />
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)<br />
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)<br />
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:776)<br />
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:705)<br />
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:898)<br />
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)<br />
at java.lang.Thread.run(Unknown Source)<br /></p></blockquote>
<br />
and in report templat generate below exception stack trace<br />
<blockquote class='ipsBlockquote' ><p>org.eclipse.birt.report.service.api.ReportServiceException: Error happened while running the report.<br />
at org.eclipse.birt.report.service.ReportEngineService.throwDummyException(ReportEngineService.java:1106)<br />
at org.eclipse.birt.report.service.ReportEngineService.runReport(ReportEngineService.java:1326)<br />
at org.eclipse.birt.report.service.BirtViewerReportService.runReport(BirtViewerReportService.java:158)<br />
at org.eclipse.birt.report.service.actionhandler.BirtRunReportActionHandler.__execute(BirtRunReportActionHandler.java:81)<br />
at org.eclipse.birt.report.service.actionhandler.BirtGetPageActionHandler.__checkDocumentExists(BirtGetPageActionHandler.java:58)<br />
at org.eclipse.birt.report.service.actionhandler.AbstractGetPageActionHandler.prepareParameters(AbstractGetPageActionHandler.java:119)<br />
at org.eclipse.birt.report.service.actionhandler.AbstractGetPageActionHandler.__execute(AbstractGetPageActionHandler.java:104)<br />
at org.eclipse.birt.report.service.actionhandler.AbstractBaseActionHandler.execute(AbstractBaseActionHandler.java:90)<br />
at org.eclipse.birt.report.soapengine.processor.AbstractBaseDocumentProcessor.__executeAction(AbstractBaseDocumentProcessor.java:47)<br />
at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.executeAction(AbstractBaseComponentProcessor.java:143)<br />
at org.eclipse.birt.report.soapengine.processor.BirtDocumentProcessor.handleGetPage(BirtDocumentProcessor.java:87)<br />
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br />
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)<br />
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)<br />
at java.lang.reflect.Method.invoke(Unknown Source)<br />
at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.process(AbstractBaseComponentProcessor.java:112)<br />
at org.eclipse.birt.report.soapengine.endpoint.BirtSoapBindingImpl.getUpdatedObjects(BirtSoapBindingImpl.java:66)<br />
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br />
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)<br />
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)<br />
at java.lang.reflect.Method.invoke(Unknown Source)<br />
at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)<br />
at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)<br />
at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)<br />
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)<br />
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)<br />
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)<br />
at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)<br />
at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)<br />
at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)<br />
at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.doPost(BirtSoapMessageDispatcherServlet.java:265)<br />
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)<br />
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)<br />
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)<br />
at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.service(BirtSoapMessageDispatcherServlet.java:122)<br />
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)<br />
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)<br />
at org.eclipse.birt.report.filter.ViewerFilter.doFilter(ViewerFilter.java:68)<br />
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)<br />
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)<br />
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)<br />
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)<br />
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)<br />
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)<br />
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)<br />
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)<br />
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)<br />
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)<br />
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:776)<br />
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:705)<br />
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:898)<br />
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)<br />
at java.lang.Thread.run(Unknown Source)<br />
Caused by: org.eclipse.birt.report.engine.api.EngineException: Error happened while running the report.<br />
at org.eclipse.birt.report.engine.api.impl.RunTask.doRun(RunTask.java:269)<br />
at org.eclipse.birt.report.engine.api.impl.RunTask.run(RunTask.java:85)<br />
at org.eclipse.birt.report.service.ReportEngineService.runReport(ReportEngineService.java:1317)<br />
... 51 more<br />
Caused by: java.lang.ClassCastException: org.eclipse.birt.data.engine.api.querydefn.ConditionalExpression cannot be cast to org.eclipse.birt.data.engine.api.IScriptExpression<br />
at org.eclipse.birt.data.engine.impl.PreparedQueryUtil.copyScriptExpr(PreparedQueryUtil.java:633)<br />
at org.eclipse.birt.data.engine.impl.PreparedQueryUtil.addParentBindings(PreparedQueryUtil.java:612)<br />
at org.eclipse.birt.data.engine.impl.PreparedQueryUtil.mappingParentColumnBinding(PreparedQueryUtil.java:588)<br />
at org.eclipse.birt.data.engine.impl.PreparedQuery.prepare(PreparedQuery.java:196)<br />
at org.eclipse.birt.data.engine.impl.PreparedQuery.(PreparedQuery.java:122)<br />
at org.eclipse.birt.data.engine.impl.PreparedSubquery.(PreparedSubquery.java:92)<br />
at org.eclipse.birt.data.engine.impl.PreparedQuery.prepareGroup(PreparedQuery.java:280)<br />
at org.eclipse.birt.data.engine.impl.PreparedQuery.prepare(PreparedQuery.java:200)<br />
at org.eclipse.birt.data.engine.impl.PreparedQuery.(PreparedQuery.java:122)<br />
at org.eclipse.birt.data.engine.impl.PreparedDataSourceQuery.(PreparedDataSourceQuery.java:75)<br />
at org.eclipse.birt.data.engine.impl.PreparedOdaDSQuery.(PreparedOdaDSQuery.java:67)<br />
at org.eclipse.birt.data.engine.impl.PreparedQueryUtil.newInstance(PreparedQueryUtil.java:186)<br />
at org.eclipse.birt.data.engine.impl.DataEngineImpl.prepare(DataEngineImpl.java:403)<br />
at org.eclipse.birt.report.data.adapter.impl.DataRequestSessionImpl.prepare(DataRequestSessionImpl.java:465)<br />
at org.eclipse.birt.report.data.adapter.impl.DataRequestSessionImpl.prepare(DataRequestSessionImpl.java:656)<br />
at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.doPrepareQuery(AbstractDataEngine.java:218)<br />
at org.eclipse.birt.report.engine.data.dte.DteDataEngine.doPrepareQuery(DteDataEngine.java:272)<br />
at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.prepare(AbstractDataEngine.java:182)<br />
at org.eclipse.birt.report.engine.executor.ReportExecutor.execute(ReportExecutor.java:122)<br />
at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportExecutor.execute(WrappedReportExecutor.java:60)<br />
at org.eclipse.birt.report.engine.internal.executor.emitter.ReportEmitterExecutor.execute(ReportEmitterExecutor.java:71)<br />
at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportExecutor.execute(WrappedReportExecutor.java:60)<br />
at org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplciateReportExecutor.execute(SuppressDuplciateReportExecutor.java:42)<br />
at org.eclipse.birt.report.engine.presentation.ReportDocumentBuilder.build(ReportDocumentBuilder.java:234)<br />
at org.eclipse.birt.report.engine.api.impl.RunTask.doRun(RunTask.java:260)<br />
... 53 more</p></blockquote>
Find more posts tagged with
Comments
JasonW
Can you post one of the offending reports?
Jason
JasonW
BTW 4.2 got released a couple of days ago:
http://birtworld.blogspot.com/2012/06/birt-42-released.html
Jason