eclipse-birt / birt

Eclipse BIRT™ The open source reporting and data visualization project.
http://www.eclipse.org/birt
Eclipse Public License 2.0
451 stars 389 forks source link

Cannot load JDBC Driver class: org.mariadb.jdbc.Driver. #1362

Closed shahzad80 closed 1 year ago

shahzad80 commented 1 year ago

I have tried to connect Mariadb through Birt data source and I input these settings into the data source page.

image

when I tested a database connection it showed the connection as successful but I tried to run this report through Birt run time it's displaying a JDBC Driver error.

image

image

org.eclipse.birt.report.engine.api.EngineException: An exception occurred during processing. Please see the following message for details: Cannot open the connection for the driver: org.eclipse.birt.report.data.oda.jdbc. org.eclipse.birt.report.data.oda.jdbc.JDBCException: Cannot load JDBC Driver class: org.mariadb.jdbc.Driver. at org.eclipse.birt.report.engine.executor.ExecutionContext.addException(ExecutionContext.java:1060) at org.eclipse.birt.report.engine.executor.ExecutionContext.addException(ExecutionContext.java:1045) at org.eclipse.birt.report.engine.executor.QueryItemExecutor.executeQuery(QueryItemExecutor.java:83) at org.eclipse.birt.report.engine.executor.TableItemExecutor.execute(TableItemExecutor.java:60) at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.execute(WrappedReportItemExecutor.java:45) at org.eclipse.birt.report.engine.internal.executor.emitter.ReportItemEmitterExecutor.execute(ReportItemEmitterExecutor.java:45) at org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplicateItemExecutor.execute(SuppressDuplicateItemExecutor.java:41) 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:34) at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:62) at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:92) at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:97) at org.eclipse.birt.report.engine.presentation.ReportDocumentBuilder.build(ReportDocumentBuilder.java:226) at org.eclipse.birt.report.engine.api.impl.RunTask.doRun(RunTask.java:224) at org.eclipse.birt.report.engine.api.impl.RunTask.run(RunTask.java:85) at org.eclipse.birt.report.service.ReportEngineService.runReport(ReportEngineService.java:1086) at org.eclipse.birt.report.service.BirtViewerReportService.runReport(BirtViewerReportService.java:146) at org.eclipse.birt.report.service.actionhandler.BirtRunReportActionHandler.execute(BirtRunReportActionHandler.java:79) at org.eclipse.birt.report.service.actionhandler.BirtGetPageActionHandler.checkDocumentExists(BirtGetPageActionHandler.java:56) at org.eclipse.birt.report.service.actionhandler.AbstractGetPageActionHandler.prepareParameters(AbstractGetPageActionHandler.java:114) at org.eclipse.birt.report.service.actionhandler.AbstractGetPageActionHandler.execute(AbstractGetPageActionHandler.java:100) at org.eclipse.birt.report.service.actionhandler.AbstractBaseActionHandler.execute(AbstractBaseActionHandler.java:88) at org.eclipse.birt.report.soapengine.processor.AbstractBaseDocumentProcessor.executeAction(AbstractBaseDocumentProcessor.java:45) at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.executeAction(AbstractBaseComponentProcessor.java:132) at org.eclipse.birt.report.soapengine.processor.BirtDocumentProcessor.handleGetPage(BirtDocumentProcessor.java:83) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.process(AbstractBaseComponentProcessor.java:107) at org.eclipse.birt.report.soapengine.endpoint.BirtSoapBindingImpl.getUpdatedObjects(BirtSoapBindingImpl.java:67) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397) at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186) at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:321) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:420) at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281) at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:684) at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.doPost(BirtSoapMessageDispatcherServlet.java:227) at javax.servlet.http.HttpServlet.service(HttpServlet.java:555) at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:332) at javax.servlet.http.HttpServlet.service(HttpServlet.java:623) at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.service(BirtSoapMessageDispatcherServlet.java:115) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) at org.eclipse.birt.report.filter.ViewerFilter.doFilter(ViewerFilter.java:71) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:673) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.base/java.lang.Thread.run(Thread.java:833) Caused by: org.eclipse.birt.report.data.adapter.api.AdapterException: An exception occurred during processing. Please see the following message for details: Cannot open the connection for the driver: org.eclipse.birt.report.data.oda.jdbc. org.eclipse.birt.report.data.oda.jdbc.JDBCException: Cannot load JDBC Driver class: org.mariadb.jdbc.Driver. at org.eclipse.birt.report.data.adapter.impl.DataRequestSessionImpl.execute(DataRequestSessionImpl.java:607) at org.eclipse.birt.report.engine.data.dte.DteDataEngine.doExecuteQuery(DteDataEngine.java:138) at org.eclipse.birt.report.engine.data.dte.DataGenerationEngine.doExecuteQuery(DataGenerationEngine.java:74) at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.execute(AbstractDataEngine.java:254) at org.eclipse.birt.report.engine.executor.ExecutionContext.executeQuery(ExecutionContext.java:1624) at org.eclipse.birt.report.engine.executor.QueryItemExecutor.executeQuery(QueryItemExecutor.java:73) ... 71 more Caused by: org.eclipse.birt.data.engine.odaconsumer.OdaDataException: Cannot open the connection for the driver: org.eclipse.birt.report.data.oda.jdbc. org.eclipse.birt.report.data.oda.jdbc.JDBCException: Cannot load JDBC Driver class: org.mariadb.jdbc.Driver. at org.eclipse.birt.data.engine.odaconsumer.ExceptionHandler.newException(ExceptionHandler.java:56) at org.eclipse.birt.data.engine.odaconsumer.ConnectionManager.openConnection(ConnectionManager.java:169) at org.eclipse.birt.data.engine.executor.DataSource.newConnection(DataSource.java:210) at org.eclipse.birt.data.engine.executor.DataSource.open(DataSource.java:199) at org.eclipse.birt.data.engine.impl.DataSourceRuntime.openOdiDataSource(DataSourceRuntime.java:195) at org.eclipse.birt.data.engine.impl.QueryExecutor.openDataSource(QueryExecutor.java:418) at org.eclipse.birt.data.engine.impl.QueryExecutor.prepareExecution(QueryExecutor.java:302) at org.eclipse.birt.data.engine.impl.PreparedQuery.doPrepare(PreparedQuery.java:388) at org.eclipse.birt.data.engine.impl.PreparedDataSourceQuery.produceQueryResults(PreparedDataSourceQuery.java:164) at org.eclipse.birt.data.engine.impl.PreparedDataSourceQuery.execute(PreparedDataSourceQuery.java:153) at org.eclipse.birt.data.engine.impl.PreparedOdaDSQuery.execute(PreparedOdaDSQuery.java:172) at org.eclipse.birt.report.data.adapter.impl.DataRequestSessionImpl.execute(DataRequestSessionImpl.java:594) ... 76 more Caused by: org.eclipse.birt.report.data.oda.jdbc.JDBCException: Cannot load JDBC Driver class: org.mariadb.jdbc.Driver. at org.eclipse.birt.report.data.oda.jdbc.JDBCDriverManager.findDriver(JDBCDriverManager.java:775) at org.eclipse.birt.report.data.oda.jdbc.JDBCDriverManager.loadAndRegisterDriver(JDBCDriverManager.java:856) at org.eclipse.birt.report.data.oda.jdbc.JDBCDriverManager.loadAndRegisterDriver(JDBCDriverManager.java:838) at org.eclipse.birt.report.data.oda.jdbc.JDBCDriverManager.doConnect(JDBCDriverManager.java:265) at org.eclipse.birt.report.data.oda.jdbc.JDBCDriverManager.getConnection(JDBCDriverManager.java:222) at org.eclipse.birt.report.data.oda.jdbc.Connection.connectByUrl(Connection.java:220) at org.eclipse.birt.report.data.oda.jdbc.Connection.open(Connection.java:142) at org.eclipse.datatools.connectivity.oda.consumer.helper.OdaConnection.open(OdaConnection.java:250) at org.eclipse.birt.data.engine.odaconsumer.ConnectionManager.openConnection(ConnectionManager.java:160) ... 86 more

The driver I am using is mariadb-java-client-2.7.9.jar which is downloaded from this given link.

https://dlm.mariadb.com/browse/java8_connector/138/1681/connector-java-2.7.9/

It is working fine because Birt is connected successfully as I provide a snapshot in this thread.

I have uploaded a design file for your further reference.
dbtest.rptdesign.txt

merks commented 1 year ago

What did you do to configure/add this additional library to your specialized runtime?

shahzad80 commented 1 year ago

Thank you for your prompt reply.

image

I simply went through this option as I clicked on add button and it asked me to the path where the drivers are located and its located on /root

image

I just selected both drivers but only one driver was appearing when I clicked on driver class was

image

merks commented 1 year ago

I'm sure the experts will chime in later, but it seems to me one thing to get it working in the IDE and other to ensure that these additional jars are actually deployed in the runtime. But I could be wrong, and of course there must be some way to do this...

hvbtup commented 1 year ago

If you are using the non-OSGI runtime, it suffices to have the JAR included in the program's ClassPath, e.g. like this (example is for Oracle DB on Windows):

CLASSPATH=C:\your-application-class.abc.jar;...;C:\birt-runtime\ReportEngine\lib\*;C:\instantclient\ojdbc8.jar
shahzad80 commented 1 year ago

Thank you for your reply.

I am using non-OSGI runtime. if I use OSGI runtime BIRT 4.14 then do I not need to define classpath on C:

a snapshot was taken from the Linux machine and installed eclipse 2023 was in it and used BIRT report designer from Eclipse and design test report but db connection was fine as I mentioned earlier in this thread and on runtime it displayed jdbc error that I mentioned in above snapshots.

when I tried this from a Windows machine to connect db (Mariadb version 10.15) that exists on Linux machine BIRT report designer it didn't get a db connection successful.

CLASSPATH=C:\your-application-class.abc.jar;...;C:\birt-runtime\ReportEngine\lib*;C:\instantclient\ojdbc8.jar

where should I exactly define this classpath I mean on which file or do I need to define this setting in global variables of windows 10 machine?

another thing is that does it require an ojdbc8.jar file and needs to be downloaded?

do both Platform Linux and Windows require ojdbc8.jar in order to run rptdesign file?

speckyspooky commented 1 year ago

If you use the OSGI-version then the location of the drivers is clear defined here:

\webapps\birt\WEB-INF\platform\plugins\org.eclipse.birt.report.data.oda.jdbc_4.14.0.v202306261418\drivers The driver must be copied there. For Non-OSGI-version you can try to put the driver directly there: \webapps\birt\WEB-INF\lib Because all jars there will be loaded with the start of the application server. To your test of the driver version, it isn't a good way to add 2 driver-type in different versions to the driver manager because sometimes it causes internal conflicts. (Not on all jdbc-drivers but some of it can cause such conflicts.) The next point is to the missing class name on the selection list. This isn't an issue of BIRT this a topic of the driver-jar to implements a public method to sho the class name. This is alos the reason why the selection list is a "ComboBox" and not a pur "SelectionList". So you have to figure out the standard class name of the driver class and can add it there. I use this way on special MS SQL drivers because not all drivers supports this public class name.
shahzad80 commented 1 year ago

Thank you for your reply @speckyspooky

For Non-OSGI-version you can try to put the driver directly there: \webapps\birt\WEB-INF\lib

which driver should I copy into the above path ojdbc8.jar or mariadb-java-client-2.7.9.jar?

speckyspooky commented 1 year ago

For testing reasons I would start with ojdbc and an Oracle connection report and afterwards with mariadb. At the end if it works you can copy both there because the driver supports different databases. So there shouldn't be cross effects.

shahzad80 commented 1 year ago

Thanks again for your prompt reply.

will get back to you shortly after testing this

shahzad80 commented 1 year ago

Thanks again for giving an exact solution.

it worked on Linux I copied both files one by one but mariadb-java-client-2.7.9.jar worked out and reports are working on Linux machine. I deleted all extra Java drivers as you said that It might cause conflict with other drivers.

please note that all processes were done on a Linux machine.

now I am doing the same process from the Windows machine and trying to establish a data connection from the Birt data source but it showing an error. the database does not exist on the Windows machine it is present on a remote machine and MariaDB is running on the remote machine(Linux).

I copied same jar file on a Windows machine which I copied on the Linux machine to establish a data connection and for running reports smoothly.

image

image

hvbtup commented 1 year ago

Regarding "which driver": My example was for Oracle DB, as I said. JDBC drivers are DB specific. For the Oracle DB, you need the driver from ojdbc8.jar, for other DBs like MariaDB, you need a different drivers from a different JAR file.

Regarding: "where should I define the Class Path": This depends on how you start your application. It is required basic knowledge for using your application.

shahzad80 commented 1 year ago

I have two DB instances one is Mariadb(10.5.21-MariaDB) and another is MYSQL(8.0.30) both are hosted on a different Linux machine.

I copied both files ojdbc8.jar and mariadb-java-client-2.7.9.jar one after one on the below path on my Windows machine but it's not working and still Birt Designer is not able to connect remote database.

C:\Users\shahzad\Downloads\birt-setup\4.14\eclipse\plugins\org.eclipse.birt.report.data.oda.jdbc_4.14.0.v202306231510

after copying those jar files they show up on driver class drop-down list.

can you give me a hint on where to find .jar file for connecting the remote mysql database? I found a link but couldn't figure out which jar file is best suited for a MySQL database connection.

http://www.java2s.com/Code/Jar/m/Downloadmysqlconnectorjar.htm

image

hvbtup commented 1 year ago

ojdbc8.jar is for Oracle RDBMS - it is not related to MySQL or MariaDB. Forget about it.

And you should never download JAR files from somewhere where you are not absolutely sure if it's the official download location. It's a security risk.

speckyspooky commented 1 year ago

At the end for the eclipse-designer you have to add the driver-classes via "Manage Drivers" to your designer and restart the designer. With the restart the driver will be loaded and you should be able to configure your connection from designer side.

For the jdbc driver you can also try the original driver version of Oracle for MySQL: https://dev.mysql.com/downloads/connector/j/

shahzad80 commented 1 year ago

I have already tried this link. It provides an rpm file that is already installed when you install MySQL db on a Linux machine and tried all of them. it does not provide any jar file that make use of copy jar file in a particular folder or it can be added to Driver class through Driver manager.

image

on the other side windows birt designer requires a jar file in order to connect your local db that exists on the same machine or remote machine.

MySQL Community Downloads on this page it is providing an MSI file of SQL connector and I think it will be of no use to install on my machine.

image

speckyspooky commented 1 year ago

Yes, you have to download the MSI-Installer and here the light way version (2.4M) because it is only executable to define your components which should be downloaded. If you have downloaded the MSI-file start it select "custom" product selection and then you are able to select only connectors and there you can define which version should be downloaded and "installed". The installation here is only a copy process in a volde and there you will find the jdbc-driver of MySQL:

grafik

Then you have it and you can copy it to your driver folder and you cann add them on the "Driver Manager".

shahzad80 commented 1 year ago

Thank you for your reply.

I have followed all your steps but still, BIRT is not able to make a connection to a remote database. the error says to verify the connection properties.

image

image

I have done it in two ways to add a driver first I added a driver through driver manager from birt designer and when it didn't work I manually copied this driver to Eclipse folder but no luck.

here is the detailed error information that was displayed while making a db connection through birt designer.

I am giving this setting on birt report designer

Driver Class: com.mysql.cj.jdbc.Driver (v8.0) Databse URL: jdbc:mysql://172.30.100.200:3306/cpsp

org.eclipse.datatools.connectivity.oda.OdaException: Failed to create a connection. Please verify the connection properties. at org.eclipse.birt.report.data.oda.jdbc.ui.profile.JDBCSelectionPageHelper$TestInProcessDialog$TestConnectionJob$1.run(JDBCSelectionPageHelper.java:191) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4047) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3663) at org.eclipse.jface.window.Window.runEventLoop(Window.java:823) at org.eclipse.jface.window.Window.open(Window.java:799) at org.eclipse.jface.dialogs.MessageDialog.open(MessageDialog.java:609) at org.eclipse.birt.report.data.oda.jdbc.ui.profile.JDBCSelectionPageHelper$8.widgetSelected(JDBCSelectionPageHelper.java:908) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:252) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89) at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4274) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1066) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4072) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3660) at org.eclipse.jface.window.Window.runEventLoop(Window.java:823) at org.eclipse.jface.window.Window.open(Window.java:799) at org.eclipse.birt.report.designer.data.ui.actions.NewDataSourceAction.run(NewDataSourceAction.java:117) at org.eclipse.jface.action.Action.runWithEvent(Action.java:474) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:580) at org.eclipse.jface.action.ActionContributionItem.lambda$4(ActionContributionItem.java:414) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89) at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4274) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1066) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4072) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3660) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:342) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1046) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155) at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:643) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:342) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:550) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:171) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:651) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:588) at org.eclipse.equinox.launcher.Main.run(Main.java:1459)

speckyspooky commented 1 year ago

Here we must be exact, the issue isn't by default a birt issue. The topic is to setup the correct connection properties. And I know the creation of the correct db-URL-connection-string can be hard. But this has is depended on the driver, the DB and your database settings.

The topic is I haven't a MySQL DB in my concept so I haven't testing options here.

shahzad80 commented 1 year ago

I don't know what am I missing in creating a database string.

this one is working fine on maria db jdbc:mariadb://localhost:3306/cpsp If a database is hosted on the same machine and it does not work on a remote database.

hvbtup commented 1 year ago

This is not a BIRT topic and not related to the title of this issue. Please ask for help in the MariaDB community. Come back if you manage to connect to your DB in the same network situation with a different Java client program and not with BIRT.

shahzad80 commented 1 year ago

Driver was not an issue it was a grant privileges issue on a database.

I am able to connect a remote database from a Windows machine that has running Birt report designer on it.

image

I want to confirm one thing that can I not add multiple drivers on Birt Designer likewise I have two db instances on two different remote machines so I will be able to connect and run reports by adding multiple drivers on a single Birt report designer.

@speckyspooky thanks for sharing the steps on how to find MySQL driver and add it to Birt Designer your suggested steps also worked that resolve JDBC driver issue that was started from the beginning of this thread.

I would like to thank you all for your great and prompt support.

wimjongman commented 1 year ago

@shahzad80, how about you or your employer make a big donation to the Eclipse Foundation:

https://www.eclipse.org/setups/donate/

shahzad80 commented 1 year ago

Thanks again for your great support.

I am sharing and sending your messages to the higher authorities.