Connect AEM with MySQL - AEM 6.4

rajkumark10 14-05-2019

Hi All,

I am trying to connect with MYSQL. I have given JDBC configuration and used below code. But in below code i am getting datasource pool as null. Can you please help me to find where i am doing mistake?

@Reference

private DataSourcePool ds;

//Returns a connection using the configured DataSourcePool

private Connection getConnection()

{

LOGGER.info("************Inside get connection*********" + ds);

         DataSource dspService = null;

         Connection con = null;

       

         try

         {

        dspService = (DataSource) ds.getDataSource("hsqldbds");

        LOGGER.info("************Inside IF*********");

        if(dspService != null) {

        LOGGER.info("************Inside IF*********");

                 final Connection connection = ((DataSource) dspService).getConnection();

                  final Statement statement = connection.createStatement();

                 final ResultSet resultSet = statement.executeQuery("SELECT * from pet");

                  int r=0;

                  LOGGER.info("************Working*********");

                  while(resultSet.next()){

                     r=r+1;

                  }

                  resultSet.close();

                  }

           

           }

         catch (Exception e)

         {

        LOGGER.info("************ERROR*********" + e.getMessage());

             e.printStackTrace();

         }

             return con;

}

Also, Can you share me driver need to be used for SQL DB in AEM 6.4.

Accepted Solutions (1)

Accepted Solutions (1)

rajkumark10 10-06-2019

Hi All,

Above issue got fixed, Driver was the problem. We have installed mssql-jdbc-7.2.2.jre8.jar  driver jar and it is working fine as expected.

Thanks for all your inputs.

Answers (22)

Answers (22)

rajkumark10 06-06-2019

Hi albinissac​ and Mayank Gandhi​,

Thanks for your inputs. As i informed before, I am not facing issue for mysql but for mssql server. Also as you said, i have tried with class.fornames(); and still facing issue. In this method even mysql not able to find driver.

Is there any reference for mssql connectivity from AEM. Kindly share.

ERROR : com.mysql.jdbc.Driver not found by

Regards,

Rajkumar K

rajkumark10 30-05-2019

Hi All,

For above issue, i have tried using Diver version 7.7.2 for SQL 2014 server with Java 8. The same steps are given in Support ticket created. Now i am getting below error. Ant idea on this error?

MY CODE and ERROR or Below

Getting error when this line Execute ----->   con = dataSource.getConnection();

ERROR:

Caused by: java.lang.NoClassDefFoundError: javax/net/ssl/SSLSocket

at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2435) [SQLDriver:1.0.0]

at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:2103) [SQLDriver:1.0.0]

at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1950) [SQLDriver:1.0.0]

at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1162) [SQLDriver:1.0.0]

at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:735) [SQLDriver:1.0.0]

at java.sql.DriverManager.getConnection(Unknown Source)

at java.sql.DriverManager.getConnection(Unknown Source)

at org.apache.commons.dbcp.DriverManagerConnectionFactory.createConnection(DriverManagerConnectionFactory.java:65) [day.commons.datasource.jdbcpool:1.0.24]

at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:294) [day.commons.datasource.jdbcpool:1.0.24]

at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:974) [day.commons.datasource.jdbcpool:1.0.24]

at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:96) [day.commons.datasource.jdbcpool:1.0.24]

at com.realogy.era.leverage.core.service.impl.DatabaseServiceImp.getConnection(DatabaseServiceImp.java:53) [com.realogy.era.leverage.realogy-era-leverage-core:1.0.0.SNAPSHOT]

... 254 common frames omitted

Caused by: java.lang.ClassNotFoundException: javax.net.ssl.SSLSocket not found by SQLDriver [590]

at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1639)

at org.apache.felix.framework.BundleWiringImpl.access$200(BundleWiringImpl.java:80)

at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2053)

at java.lang.ClassLoader.loadClass(Unknown Source)

... 266 common frames omitted

Please help me with this.

Regards,

Rajkumar K

con = dataSource.getConnection();

smacdonald2008 14-05-2019

There seems to be a bug here. See the following pic:

My OSGi bundle is active that exposes the required database SQL SERVER driver file.

Yet -- there is an error in the LOG file that says it cannot be found. This does not behave the same as the MySQL Driver file.

I recommend opening a SUPPORT Ticket and state the MS SQL Server Driver file cannot be found even though its deployed in an active state,

Error.png

smacdonald2008 14-05-2019

I have only ever used MySQL for the DataSourcePool use case. 

I have SQL Server on my DEV Machine. I will test this out and post back.

I would think this could be a DRiver File issue or COnnection String issue when you setup the configuration required.

rajkumark10 14-05-2019

Hi,

I have tried both the URLs. I can connect with MySql without any issues. I am facing issue with SQL database. is there anything i am missing in my configurations?

rajkumark10 14-05-2019

Hi,

I am using below details and getting the given error. Kindly help me to resolve the same.

JDBC Driver class : com.microsoft.sqlserver.jdbc.SQLServerDriver

JDBC connection : jdbc:sqlserver://<SQL Server URL>

Dependency used:

<dependency>

    <groupId>com.microsoft.sqlserver</groupId>

    <artifactId>mssql-jdbc</artifactId>

    <version>7.3.0.jre8-preview</version>

    <scope>provided</scope>

</dependency>

ERROR : No data source found with name 'test' (after asking 0 providers)

rajkumark10 14-05-2019

Hi Mayank,

Thanks for your reply. No forms, i am just trying to connect with SQL database from AEM using datasourcepool. I am able to connect with MYSQL but not able to get connection to SQL. I guess the driver name and JDBC connection will change for SQL. Any idea?

Regards,

Rajkumar K