Mon application CQ5 doit se connecter à une RDBMS externe. Comment configurer et me connecter à la source de données JDBC ?
Par exemple, créez une source de données JDBC pour vous connecter à la base de données H2
Veuillez noter que la ligne vierge à la fin d'un fichier manifeste jar est requise.
jar -cfm org.h2.jdbc.driver.extension-1.1.119.jar h2ext.mf
Bundle-ManifestVersion: 2 Bundle-SymbolicName: org.h2.jdbc.driver.extension Bundle-Version: 1.1.119 Fragment-Host: system.bundle; extension:=framework Bundle-Name: H2 JDBC Driver Extension Bundle-Description: Bundle exporting H2 JDBC Driver Export-Package: org.h2
Naviguer jusqu'au guide de Configuration dans la console Felix (http://localhost:4502/system/console/configMgr). Utilisez la fabrique de configuration du pool de connexion JDBC pour créer un nouveau pool de connexion. Par exemple, les paramètres suivants peuvent être définis.
JDBC driver class: org.h2.Driver JDBC connection URI: jdbc:h2:~/test Usename: sa Password: Validation query: Pool size: 10 Pool wait (msec): 100 Datasource name: h2DataSource
Obtenez une occurence de la DataSource.
Une fois configuée, l’instance de la source de données est acquise par l’appel de la méthode getDataSource(String datasourceName) du service DataSourcePool (com.day.commons.datasource.poolservice.DataSourcePool), lui transmettant le nom de la source de données.
Dans cet exemple, nous créons un service OSGi simple qui peut être utilisé pour obtenir une instance d’une DataSource. Cet exemple n’est pas réaliste, car il reproduit la même API que com.day.commons.datasource.poolservice.DataSourcePool sans y ajouter de fonctionnalités. Il indique toutefois comment DataSourcePool peut être utilisé dans votre propre code.
Créons d’abord une interface pour notre service.
package com.day.test.datasource; import javax.sql.DataSource; public interface DatasourceUtil { public DataSource getDataSource(String dataSourceName); }
La mise en place. Comme vous pouvez le constater, en plus de masquer le DataSourceNotFoundException elle n'ajoute aucune valeur :).
package com.day.test.datasource; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.sql.DataSource; import com.day.commons.datasource.poolservice.DataSourceNotFoundException; import com.day.commons.datasource.poolservice.DataSourcePool; /** * * This class is an example if how DataSourcePool can be used to obtain the DataSource. * * @scr.component immediate="true" metatype="no" * @scr.service interface="DatasourceUtil" * @scr.property name="service.description" value="Data Source lookup example" * @scr.property name="service.vendor" value="Day Software" */ public class DatasourceUtilImpl implements DatasourceUtil { private static final Logger log = LoggerFactory.getLogger( DatasourceUtilImpl.class); /** @scr.reference policy="static" */ private DataSourcePool dataSourceService; public DataSource getDataSource(String dataSourceName) { log.info("Using DataSourcePool service lookup " + "to get connection pool " + dataSourceName); DataSource dataSource = null; try { dataSource = (DataSource) dataSourceService.getDataSource( dataSourceName); } catch (DataSourceNotFoundException e) { log.error("Unable to find datasource {}.", dataSourceName, e); } return dataSource; } }
Cette classe utilise une spécification de services déclaratifs OSGi pour obtenir une instance de service DataSourcePool puis appelle sa getDataSource (dataSourceName) pour obtenir la source de données. Le module externe Maven SCR utilise les annotations de scr Java pour générer des descripteurs XML pour les services déclaratifs OSGi. Le fichier zip joint contient l'exemple POM.
Vous pouvez télécharger un exemple complet ici : datasourceutil.zip. Il inclut un POM maven pour le générer. Pour créer ce projet à l'aide de POM consultez Utiliser le CQ5 comme référentiel de maven.
Il s'agit d'un package CRX qui contient un exemple de JSP - datasource-example-jsp.zip. C'est un composant CQ qui peut être ajouté à n’importe quelle page avec un système de paragraphes. Il peut être utilisé pour tester votre connexion à la source de données.
Ajouté est un lot d'exemple à créer avec CRXDE / CRXDE Lite contenant le pilote d'installation oracle oracle_example_driver.zip, aller voir à /apps/oracle. Dans Activator.java se chargent la classe de pilote (pas forcément nécessaire dans les versions ultérieures). Vérifiez que vous disposez bien de la dernière version day.commons.datasource.jdbcpool (1.0.8) installée avant de l'utiliser.
CQ5.2.1, CQ5.3
Telechargement
Telechargement
Telechargement
Telechargement
Telechargement
Telechargement
Telechargement
Telechargement
Accéder à votre compte