¿Cómo conectar la base de datos de Oracle desde AEM as a cloud service?

Descripción

Entorno

Adobe Experience Manager

Problema/Síntomas

¿Cómo conectar la base de datos de Oracle desde AEM as a cloud service?

Resolución

La conexión de la base de datos de Oracle desde AEM as a cloud service implica lo siguiente:

  • Adición de dependencia de Maven en pom

  • AEM Service para conectarse con la base de datos de Oracle

  • Configuración de OSGi

Adición de dependencia de Maven en pom

Paso 1: Incluya la siguiente dependencia de maven en el proyecto principal pom.xml

dependency
                groupIdcom.oracle.database.jdbc/groupId
                artifactIdojdbc-bom/artifactId
                version21.5.0.0/version
                typepom/type
                scopeimport/scope
            /dependency

Paso 2: Incluya la siguiente dependencia de maven en pom.xml de "core" y "all".

dependency
            groupIdcom.oracle.database.jdbc/groupId
            artifactIdojdbc8/artifactId
        /dependency
        dependency
            groupIdcom.oracle.database.jdbc/groupId
            artifactIducp/artifactId
        /dependency
        dependency
            groupIdcom.oracle.database.xml/groupId
            artifactIdxdb/artifactId
        /dependency

AEM Service para conectarse con la base de datos de Oracle

Ejemplo de código de servicio para conectarse con la base de datos desde AEM as a cloud service. Se puede incluir en la ruta

ruta {0}" carpeta del proyecto" principal" servicio

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);
     }
   }
}

Configuración de OSGi

Paso 1: Vaya a AEM configuración OSGi (http://localhost:4502/system/console/configMgr) en local.

Paso 2: Busque "JDBC Connection pool" y configure los siguientes valores con respecto a su base de datos (consulte la captura de pantalla para ver los valores de muestra)

  • Clase de controlador JDBC
  • URL de conexión JDBC
  • Nombre de usuario y contraseña
  • Nombre de la fuente de datos

Paso 3: Siga los pasos del vínculo siguiente y convierta la configuración de OSGi en .cfg.json y agregue lo mismo a la configuración del proyecto según AEMaaCS Standard.

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

En esta página