#1 2019-06-14 09:34:43

hvupadhye
Member
From: Mumbai, India
Registered: 2016-05-13

java.sql.SQLException: No suitable driver

Hello Guys,

I am facing a strange problem when I am connecting to the MySQL database from Community Edition (RS3.0.7-6008 2019-05-06-13-37-55). ReportServer 2 is working fine with the same JDBC URL running on the same server. Both the installed by Bitnami installer. Will you please help me to resolve this issue? Following is exact error message appearing on the screen.

Could not open connection to: jdbc://mysql//<ip>:<port>/db with user: root. java.sql.SQLException: No suitable driver

net.datenwerke.rs.core.service.reportmanager.exceptions.DatabaseConnectionException: Could not open connection to: jdbc://mysql//<ip>:<port>/db  with user: root. java.sql.SQLException: No suitable driver
<br>    at net.datenwerke.rs.base.service.datasources.transformers.database.Database2TableTransformer.transform(Database2TableTransformer.java:57)
<br>    at net.datenwerke.rs.base.service.datasources.transformers.database.Database2TableTransformer.transform(Database2TableTransformer.java:1)
<br>    at net.datenwerke.rs.base.service.datasources.transformers.DatasourceTransformationServiceImpl.transform(DatasourceTransformationServiceImpl.java:29)
<br>    at net.datenwerke.rs.base.service.reportengines.table.SimpleDataSupplier.getData(SimpleDataSupplier.java:133)
<br>    at net.datenwerke.rs.base.service.reportengines.table.SimpleDataSupplier.getData(SimpleDataSupplier.java:124)
<br>    at net.datenwerke.rs.base.service.reportengines.table.SimpleDataSupplier.getData(SimpleDataSupplier.java:111)
<br>    at net.datenwerke.rs.adminutils.server.datasourcetester.DatasourceTesterRPCServiceImpl.testConnection(DatasourceTesterRPCServiceImpl.java:98)
<br>    at net.datenwerke.rs.adminutils.server.datasourcetester.DatasourceTesterRPCServiceImpl$$EnhancerByGuice$$a44fcc66.CGLIB$testConnection$0(&lt;generated&gt;)
<br>    at net.datenwerke.rs.adminutils.server.datasourcetester.DatasourceTesterRPCServiceImpl$$EnhancerByGuice$$a44fcc66$$FastClassByGuice$$23805e16.invoke(&lt;generated&gt;)
<br>    at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228)
<br>    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)
<br>    at com.google.inject.persist.jpa.JpaLocalTxnInterceptor.invoke(JpaLocalTxnInterceptor.java:66)
<br>    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)
<br>    at net.datenwerke.security.service.security.aop.SecurityCheckInterceptor.invoke(SecurityCheckInterceptor.java:109)
<br>    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)
<br>    at net.datenwerke.gf.service.gwtstacktrace.CatchStacktraceInterceptor.invoke(CatchStacktraceInterceptor.java:38)
<br>    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)
<br>    at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:52)
<br>    at net.datenwerke.rs.adminutils.server.datasourcetester.DatasourceTesterRPCServiceImpl$$EnhancerByGuice$$a44fcc66.testConnection(&lt;generated&gt;)
<br>    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
<br>    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
<br>    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
<br>    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
<br>    at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:587)
<br>    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:333)
<br>    at net.datenwerke.rs.adminutils.server.datasourcetester.DatasourceTesterRPCServiceImpl$$EnhancerByGuice$$a44fcc66.CGLIB$processCall$3(&lt;generated&gt;)
<br>    at net.datenwerke.rs.adminutils.server.datasourcetester.DatasourceTesterRPCServiceImpl$$EnhancerByGuice$$a44fcc66$$FastClassByGuice$$23805e16.invoke(&lt;generated&gt;)
<br>    at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228)
<br>    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)
<br>    at net.datenwerke.security.service.security.aop.SecurityCheckInterceptor.invoke(SecurityCheckInterceptor.java:109)
<br>    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)
<br>    at net.datenwerke.gf.service.gwtstacktrace.CatchStacktraceInterceptor.invoke(CatchStacktraceInterceptor.java:38)
<br>    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)
<br>    at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:52)
<br>    at net.datenwerke.rs.adminutils.server.datasourcetester.DatasourceTesterRPCServiceImpl$$EnhancerByGuice$$a44fcc66.processCall(&lt;generated&gt;)
<br>    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:303)
<br>    at net.datenwerke.rs.adminutils.server.datasourcetester.DatasourceTesterRPCServiceImpl$$EnhancerByGuice$$a44fcc66.CGLIB$processCall$4(&lt;generated&gt;)
<br>    at net.datenwerke.rs.adminutils.server.datasourcetester.DatasourceTesterRPCServiceImpl$$EnhancerByGuice$$a44fcc66$$FastClassByGuice$$23805e16.invoke(&lt;generated&gt;)
<br>    at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228)
<br>    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)
<br>    at net.datenwerke.security.service.security.aop.SecurityCheckInterceptor.invoke(SecurityCheckInterceptor.java:109)
<br>    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)
<br>    at net.datenwerke.gf.service.gwtstacktrace.CatchStacktraceInterceptor.invoke(CatchStacktraceInterceptor.java:38)
<br>    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)
<br>    at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:52)
<br>    at net.datenwerke.rs.adminutils.server.datasourcetester.DatasourceTesterRPCServiceImpl$$EnhancerByGuice$$a44fcc66.processCall(&lt;generated&gt;)
<br>    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:373)
<br>    at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
<br>    at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
<br>    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
<br>    at net.datenwerke.rs.adminutils.server.datasourcetester.DatasourceTesterRPCServiceImpl$$EnhancerByGuice$$a44fcc66.CGLIB$service$17(&lt;generated&gt;)
<br>    at net.datenwerke.rs.adminutils.server.datasourcetester.DatasourceTesterRPCServiceImpl$$EnhancerByGuice$$a44fcc66$$FastClassByGuice$$23805e16.invoke(&lt;generated&gt;)
<br>    at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228)
<br>    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)
<br>    at net.datenwerke.security.service.security.aop.SecurityCheckInterceptor.invoke(SecurityCheckInterceptor.java:109)
<br>    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)
<br>    at net.datenwerke.gf.service.gwtstacktrace.CatchStacktraceInterceptor.invoke(CatchStacktraceInterceptor.java:38)
<br>    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)
<br>    at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:52)
<br>    at net.datenwerke.rs.adminutils.server.datasourcetester.DatasourceTesterRPCServiceImpl$$EnhancerByGuice$$a44fcc66.service(&lt;generated&gt;)
<br>    at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:263)
<br>    at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:178)
<br>    at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91)
<br>    at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:62)
<br>    at com.google.inject.persist.PersistFilter.doFilter(PersistFilter.java:89)
<br>    at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163)
<br>    at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
<br>    at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:168)
<br>    at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
<br>    at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:168)
<br>    at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
<br>    at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118)
<br>    at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)
<br>    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
<br>    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
<br>    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:200)
<br>    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
<br>    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
<br>    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
<br>    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
<br>    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
<br>    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
<br>    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
<br>    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
<br>    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
<br>    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:836)
<br>    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1747)
<br>    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
<br>    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
<br>    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
<br>    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
<br>    at java.base/java.lang.Thread.run(Thread.java:834)
<br>Caused by: java.lang.RuntimeException: java.sql.SQLException: No suitable driver
<br>    at net.datenwerke.dbpool.DbC3p0PoolServiceImpl$1.get(DbC3p0PoolServiceImpl.java:189)
<br>    at net.datenwerke.dbpool.DbC3p0PoolServiceImpl$1.get(DbC3p0PoolServiceImpl.java:1)
<br>    at net.datenwerke.rs.base.service.datasources.transformers.database.Database2TableTransformer.transform(Database2TableTransformer.java:54)
<br>    ... 91 more
<br>Caused by: java.sql.SQLException: No suitable driver
<br>    at java.sql/java.sql.DriverManager.getDriver(DriverManager.java:298)
<br>    at com.mchange.v2.c3p0.DriverManagerDataSource.driver(DriverManagerDataSource.java:285)
<br>    at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:175)
<br>    at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:220)
<br>    at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:211)
<br>    at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1127)
<br>    at com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1114)
<br>    at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:44)
<br>    at com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1855)
<br>    at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:696)
<br>

Offline

#2 2019-06-14 10:03:33

eduardo
Administrator
Registered: 2016-11-01
Website

Re: java.sql.SQLException: No suitable driver

Hi hvupadhye,

are you sure you mean ReportServer 2 ? Please check the version again.

What version of MySQL are you using and what is the JDBC you use that doesn't work?

Regards,
Eduardo

Offline

#3 2019-06-14 10:04:18

eduardo
Administrator
Registered: 2016-11-01
Website

Re: java.sql.SQLException: No suitable driver

Hi hvupadhye,

also check for white spaces before / after the JDBC URL.

Regards,
Eduardo

Offline

#4 2019-06-14 12:32:39

hvupadhye
Member
From: Mumbai, India
Registered: 2016-05-13

Re: java.sql.SQLException: No suitable driver

I am facing a strange problem when I am connecting to the MySQL database from Community Edition (RS3.0.7-6008 2019-05-06-13-37-55). I wanted to tell you, on the same server there is another installation of ReportServer 2.X and it working fine. I am using MySQL 5.7.16 version. I am using the latest JDBC driver which is downloaded on today.

Last edited by hvupadhye (2019-06-14 12:41:56)

Offline

#5 2019-06-14 12:35:35

eduardo
Administrator
Registered: 2016-11-01
Website

Re: java.sql.SQLException: No suitable driver

Hi hvupadhye,

please post a screenshot of the ReportServer 2.X ( what is X? ) where it is working.

Please post the JDBC URL that is not working.

Regards,
Eduardo

Offline

#6 2019-06-14 13:38:32

hvupadhye
Member
From: Mumbai, India
Registered: 2016-05-13

Re: java.sql.SQLException: No suitable driver

Offline

#7 2019-06-14 13:43:04

eduardo
Administrator
Registered: 2016-11-01
Website

Re: java.sql.SQLException: No suitable driver

Hi hvupadhye,

in the error message I see:
Could not open connection to: jdbc://mysql//<ip>:<port>/db with user: root. java.sql.SQLException: No suitable driver

But jdbc://mysql//<ip>:<port>/db  is not the JDBC URL you wrote.
Can you please make sure that you clicked on the "Apply" button before you click on the "Test connection" Button ?

Regards,
Eduardo

Offline

#8 2019-06-14 13:49:32

hvupadhye
Member
From: Mumbai, India
Registered: 2016-05-13

Re: java.sql.SQLException: No suitable driver

I edited the error and hide the IP details of my server. Please see https://ibb.co/wJ1tSFs image for details. Yes, I am sure that I clicked on apply button before test connection.

Last edited by hvupadhye (2019-06-14 13:51:14)

Offline

#9 2019-06-14 13:57:59

eduardo
Administrator
Registered: 2016-11-01
Website

Re: java.sql.SQLException: No suitable driver

Hi hvupadhye,

the correct URL for mysql should start with: jdbc:mysql://

And *not* with jdbc://mysql:// as in your screenshot. Please change the URL.
The correct URL is also in the screenshot that is working. So you don't have the exact URLs in both cases.

Regards,
Eduardo

Offline

#10 2019-06-14 14:44:33

hvupadhye
Member
From: Mumbai, India
Registered: 2016-05-13

Re: java.sql.SQLException: No suitable driver

Sorry for stupid mistake and thank you for the patient support. I really appreciate. It is working now. I am laughing at myself. In future, I will be very careful and try to be sure before posting issue on forum.

Last edited by hvupadhye (2019-06-14 14:50:02)

Offline

#11 2019-06-14 15:29:58

eduardo
Administrator
Registered: 2016-11-01
Website

Re: java.sql.SQLException: No suitable driver

Hi hvupadhye,

smile no worries!

Regards,
Eduardo

Offline

#12 2021-06-21 06:48:32

marktoddy
Member
Registered: 2021-06-21

Re: java.sql.SQLException: No suitable driver

The reason you got this error is because you forgot to register your java mysql jdbc driver with the application.

Should be like  this:

Class.forName("com.mysql.jdbc.Driver");

This forces the driver to register itself, so that Java knows how to handle those database connection strings.

You'll have to read the manual on your specific mysql jdbc driver to find the exact string to place inside the the Class.forName("...") parameter.

Offline

Board footer

Powered by FluxBB