Entorno
Adobe Experience Manager
Problema/Síntomas
¿Cómo conectar la base de datos de Oracle AEM desde el servicio en la nube de as a?
La conexión de la base de datos de Oracle AEM desde el servicio en la nube de as a implica lo siguiente:
Adición de la dependencia de Maven en pom
AEM Servicio para conectarse con la base de datos de Oracle
Configuración de OSGi
Adición de la dependencia de Maven en pom
Paso 1: Incluya la siguiente dependencia de Maven en el proyecto principal 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`>`
Paso 2: Incluya la siguiente dependencia de Maven en pom.xml
de "core" y "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`>`
AEM Servicio para conectarse con la base de datos de Oracle
AEM Código de servicio de ejemplo para conectarse con la base de datos desde el servicio en la nube de as a Cloud Service de la plataforma de datos de. Se puede incluir en la ruta
ruta de acceso {0}" carpeta de proyecto" servicio principal"
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: AEM Vaya a la configuración de OSGi (http://localhost:4502/system/console/configMgr) en la configuración local de.
Paso 2: Busque "Grupo de conexión JDBC" y configure los siguientes valores con respecto a su base de datos (consulte la captura de pantalla para ver valores de muestra)
Paso 3: Siga los pasos del vínculo siguiente y convierta la configuración OSGi en .cfg.json
y agregue lo mismo a la configuración de su proyecto según el estándar AEMaaCS.