Comment connecter la base de données Oracle d’AEM as a Cloud Service ?

Description

Environnement

Adobe Experience Manager

Problème/Symptômes

Comment connecter la base de données Oracle d’AEM as a Cloud Service ?

Résolution

La connexion de la base de données Oracle à partir d’AEM as a Cloud Service implique les opérations suivantes :

  • Ajout d’une dépendance Maven dans pom

  • Service AEM pour se connecter à la base de données Oracle

  • Configuration OSGi

Ajout d’une dépendance Maven dans pom

Étape 1 : Inclure la dépendance maven ci-dessous dans la principale pom.xml

`<` dependency`>`

                `<` groupId`>` com.oracle.database.jdbc`<` /groupId`>`

                `<` artifactId`>` ojdbc-bom`<` /artifactId`>`

                `<` version`>` 21.5.0.0`<` /version`>`

                `<` type`>` pom`<` /type`>`

                `<` scope`>` import`<` /scope`>`

            `<` /dependency`>`

Étape 2 : Inclure la dépendance Maven ci-dessous dans pom.xml de "core" et "all".

`<` dependency`>`

            `<` groupId`>` com.oracle.database.jdbc`<` /groupId`>`

            `<` artifactId`>` ojdbc8`<` /artifactId`>`

        `<` /dependency`>`

        `<` dependency`>`

            `<` groupId`>` com.oracle.database.jdbc`<` /groupId`>`

            `<` artifactId`>` ucp`<` /artifactId`>`

        `<` /dependency`>`

        `<` dependency`>`

            `<` groupId`>` com.oracle.database.xml`<` /groupId`>`

            `<` artifactId`>` xdb`<` /artifactId`>`

        `<` /dependency`>`

Service AEM pour se connecter à la base de données Oracle

Exemple de code de service pour se connecter à la base de données à partir d’AEM as a Cloud Service. Elle peut être incluse dans le chemin

chemin d’accès {0}" dossier du projet" core service"

DatabaseService.java

package com.mysite.core.services;

public interface DatabaseService {

}

DatabaseServiceImpl.java

package com.mysite.core.services;

import com.day.commons.datasource.poolservice.DataSourcePool;

import org.osgi.service.component.annotations.Activate;

import org.osgi.service.component.annotations.Component;

import org.osgi.service.component.annotations.Reference;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import javax.sql.DataSource;

import java.sql.Connection;


@Component(

    service = DatabaseService.class,

    immediate = true

)


public class DatabaseServiceImpl implements DatabaseService {

   private final Logger LOGGER = LoggerFactory.getLogger(DatabaseService.class);

   @Reference

   private DataSourcePool dataSourcePool;

   @Activate

   public void activate() {

     try {


       DataSource dataSource = (DataSource) dataSourcePool.getDataSource("oracle");

       Connection connection = dataSource.getConnection();

       if (connection != null) {

         if (!connection.isClosed()) {

           LOGGER.info("Connected with connection #4");

           connection.close();

         }

       }


       else {

         LOGGER.info("Connection is null");

       }

     } catch (Exception ex) {

       LOGGER.error("It was not possible to get the data source: " + ex.getMessage(), ex);

     }

   }

}

Configuration OSGi

Étape 1 : Accédez à AEM configuration OSGi (http://localhost:4502/system/console/configMgr) en local.

Étape 2 : Recherchez "JDBC Connection pool" et configurez les valeurs ci-dessous par rapport à votre base de données (voir la capture d’écran pour consulter des exemples de valeurs).

  • Classe de pilote JDBC
  • URL de connexion JDBC
  • Nom d’utilisateur et mot de passe
  • Nom de la source de données

Étape 3 : Suivez les étapes du lien ci-dessous et convertissez la configuration OSGi en .cfg.json et ajoutez-le à la configuration de votre projet conformément à AEMaaCS Standard.

https://experienceleague.adobe.com/docs/experience-manager-cloud-service/content/implementing/deploying/configuring-osgi.html?lang=fr#generating-osgi-configurations-using-the-aem-sdk-quickstart

Sur cette page