It's all about the answers!

Ask a question

How to deploy a report created using a JDBC data source?


Andrea Ianni (1611916) | asked Feb 26 '09, 4:34 a.m.
Hi,
I created a report with JDBC Data Source and I see it correctly in Birt report Viewer but when I create a new report using Report Template I have this error:
Cannot open the connection for the driver: org.eclipse.birt.report.data.oda.jdbc

Cannot load JDBC Driver class: com.ibm.db2.jcc.DB2Driver ( 1 time(s) )
detail : org.eclipse.birt.report.data.adapter.api.AdapterException: Cannot open the connection for the driver: org.eclipse.birt.report.data.oda.jdbc
Cannot load JDBC Driver class: com.ibm.db2.jcc.DB2Driver
at org.eclipse.birt.report.data.adapter.impl.DataRequestSessionImpl.execute(DataRequestSessionImpl.java:457)
at org.eclipse.birt.report.engine.data.dte.DteDataEngine.doExecuteQuery(DteDataEngine.java:151)
at org.eclipse.birt.report.engine.data.dte.DteDataEngine.doExecuteQuery(DteDataEngine.java:117)
at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.execute(AbstractDataEngine.java:182)
at org.eclipse.birt.report.engine.executor.ExtendedGenerateExecutor.executeQueries(ExtendedGenerateExecutor.java:197)
at org.eclipse.birt.report.engine.executor.ExtendedGenerateExecutor.execute(ExtendedGenerateExecutor.java:63)
at org.eclipse.birt.report.engine.executor.ExtendedItemExecutor.execute(ExtendedItemExecutor.java:60)
at org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplicateItemExecutor.execute(SuppressDuplicateItemExecutor.java:42)
at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.execute(WrappedReportItemExecutor.java:45)
at org.eclipse.birt.report.engine.internal.executor.l18n.LocalizedReportItemExecutor.execute(LocalizedReportItemExecutor.java:33)
at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:63)
at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:85)
at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:106)
at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:140)
at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:68)
at com.ibm.team.reports.service.internal.InternalReportService.getRenderedReport(InternalReportService.java:1582)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:618)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.invoke(ExportProxyServiceRecord.java:375)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:361)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(ExportProxyServiceRecord.java:55)
at $Proxy144.getRenderedReport(Unknown Source)
at com.ibm.team.reports.service.internal.ReportRestService$2.run(ReportRestService.java:416)
at com.ibm.team.reports.service.internal.ReportRestService.getRenderedReport(ReportRestService.java:423)
at com.ibm.team.reports.service.internal.ReportRestService.getRenderedQuery(ReportRestService.java:364)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:618)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.invoke(ExportProxyServiceRecord.java:375)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:361)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(ExportProxyServiceRecord.java:55)
at $Proxy146.getRenderedQuery(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:618)
at com.ibm.team.repository.servlet.AbstractTeamServerServlet.doModelledRestService(AbstractTeamServerServlet.java:493)
at com.ibm.team.repository.servlet.AbstractTeamServerServlet.service(AbstractTeamServerServlet.java:1379)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper.service(ServletManager.java:180)
at org.eclipse.equinox.http.servlet.internal.ServletRegistration.handleRequest(ServletRegistration.java:90)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:111)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:75)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.eclipse.equinox.servletbridge.BridgeServlet.service(BridgeServlet.java:115)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
at java.lang.Thread.run(Thread.java:810)


I have copy the DB2 driver in
JazzTeamServer\repotools\eclipse\plugins\org.eclipse.birt.report.data.oda.jdbc_2.2.2.r22x_v20071206\drivers and C:\Program Files\IBM\JazzTeamServer\repotools\eclipse\plugins\org.eclipse.birt.report.data.oda.jdbc\drivers folders.

I have the DB2 driver also in:
JazzTeamServer\server\update-site\plugins\org.eclipse.birt.report.data.oda.jdbc_2.2.2.r22x_v20071206\drivers and
JazzTeamServer\server\update-site\plugins\org.eclipse.birt.report.data.oda.jdbc\drivers folders but it still does not work. :(

At this point I believe to be wrong to deploy the report, deploy reports with jdbc data source is different than "normal" report with Jazz DW data source?

Any suggestion?
Thanks
AI

4 answers



permanent link
Andrea Ianni (1611916) | answered Feb 27 '09, 5:57 a.m.
You have modified some of the bundles that we ship with the server. I know that Tomcat caches those bundles in a folder named work. So even after you have made changes to the BIRT bundles to include the JDBC driver, Tomcat might not pick the changes because it is still using the cached bundles. I could be wrong since I never tried the scenario you are trying. So what I am suggesting is that you need to shutdown your server, empty the work folder and restart the server. Of course I am assuming your server is running Tomcat.


Thanks a lot!
Now works!!! :D

AI

permanent link
Rafik Jaouani (5.0k16) | answered Feb 26 '09, 8:49 p.m.
JAZZ DEVELOPER
You have modified some of the bundles that we ship with the server. I know that Tomcat caches those bundles in a folder named work. So even after you have made changes to the BIRT bundles to include the JDBC driver, Tomcat might not pick the changes because it is still using the cached bundles. I could be wrong since I never tried the scenario you are trying. So what I am suggesting is that you need to shutdown your server, empty the work folder and restart the server. Of course I am assuming your server is running Tomcat.

permanent link
Andrea Ianni (1611916) | answered Feb 26 '09, 9:49 a.m.
After you add the jdbc driver to the server bundle, make sure you delete the work folder of Tomcat and restart the server.


Sorry, what do you mean for "work folder" ?
Thanks
AI

permanent link
Rafik Jaouani (5.0k16) | answered Feb 26 '09, 7:44 a.m.
JAZZ DEVELOPER
After you add the jdbc driver to the server bundle, make sure you delete the work folder of Tomcat and restart the server.

Your answer


Register or to post your answer.


Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.