Como conectar o banco de dados do Oracle do AEM as a cloud service?

Descrição

Ambiente

Adobe Experience Manager

Problema/Sintomas

Como conectar o banco de dados do Oracle do AEM as a cloud service?

Resolução

A conexão do banco de dados do Oracle do AEM as a cloud service envolve o seguinte:

  • Adicionar dependência Maven no pom

  • AEM Service para se conectar ao banco de dados do Oracle

  • Configuração do OSGi

Adicionar dependência Maven no pom

Etapa 1: Inclua a dependência maven abaixo no projeto principal pom.xml

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

Etapa 2: Inclua a dependência maven abaixo em pom.xml de "núcleo" e "tudo".

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 se conectar ao banco de dados do Oracle

Exemplo de código de serviço para conexão com o banco de dados do AEM as a cloud service. Ele pode ser incluído no caminho

caminho {0}" pasta do projeto" principal" serviço

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

Configuração do OSGi

Etapa 1: Vá para AEM configuração OSGi (http://localhost:4502/system/console/configMgr) no local.

Etapa 2: Procure por "JDBC Connection pool" e configure os valores abaixo em relação ao seu banco de dados (consulte captura de tela para obter valores de exemplo)

  • Classe de driver JDBC
  • URL de conexão JDBC
  • Nome de usuário e senha
  • Nome da fonte de dados

Etapa 3: Siga as etapas no link abaixo e converta a configuração OSGi em .cfg.json e adicione o mesmo na configuração do projeto de acordo com o AEMaaCS Standard.

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

Nesta página