Entorno
Adobe Experience Manager
Problema/Síntomas
¿Cómo conectar la base de datos de Oracle desde AEM as a cloud service?
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)
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.