You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@sling.apache.org by JCR <jc...@proxymit.net> on 2021/02/26 14:53:01 UTC

Sling/Felix JDBC Connection Pool problem

For creating a JDBC connection pool (to mariadb) in Sling 11, I followed 
the instructions given at 
https://sling.apache.org/documentation/bundles/datasource-providers.html 
. However, I get a runtime exception on the datasource without further 
details.

As documented on that webpage, I declared the following in the consuming 
class:

import org.apache.felix.scr.annotations.Reference;

public class Database {

     @Reference(target = 
"(&(objectclass=javax.sql.DataSource)(datasource.name=dbdb))")
     DataSource dataSource;

     public String test() {

         try {

             Connection con = dataSource.getConnection();

             ... Some SQL instructions...

     }

The config of the datasource was done via the Felix console and looks like:

     in JNDI DataSource:

         Datasource name(*): dbdb
         JNDI name(*): dbdb

     in Apache Sling Connection Pooled DataSource:

         Datasource name(*): dbdb
         JDBC driver class: org.mariadb.jdbc.Driver
         JDBC connection URI: 
jdbc:mysql://localhost:3306/someDB?useUnicode=yes&characterEncoding=UTF-8
         Username: xyz
         .... many more

The POM:
     <dependency>
             <groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.scr.annotations</artifactId>
             <version>1.12.0</version>
         </dependency>


Now, the datasource, at the moment of calling test() is null. I have 
absolutely no hint what the problem is. The config? The annotation? What 
is obvious, however, is that the code as suggested on the bundles page, 
is deprecated...

Thanks,
-Juerg