Come si collega il database Oracle da AEM as a Cloud Service?
Questo articolo illustra come collegare il database Oracle da Adobe Experience Manager (AEM) as a Cloud Service.
Descrizione description
Ambiente
Adobe Experience Manager
Problema/Sintomi
Come si collega il database Oracle da AEM as a Cloud Service?
Risoluzione resolution
La connessione del database Oracle da AEM as a Cloud Service prevede i seguenti passaggi:
-
Aggiunta della dipendenza Maven nel POM
-
Servizio AEM per la connessione al database Oracle
-
Configurazione OSGi
Aggiunta della dipendenza Maven nel POM
Passaggio 1: Includi questa dipendenza Maven in pom.xml principale del progetto
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc-bom</artifactId>
<version>21.5.0.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
Passaggio 2: Includi la dipendenza Maven seguente in pom.xml sia di "core" che di "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>
Servizio AEM per la connessione al database Oracle
Codice di servizio di esempio per la connessione al database da AEM as a Cloud Service. Può essere incluso nel percorso
servizio "core" della cartella di progetto percorso {0}"
ServizioDatabase.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);
}
}
}
Configurazione OSGi
Passaggio 1: Vai alla configurazione AEM OSGi (http://localhost:4502/system/console/configMgr) in locale.
Passaggio 2: Cerca "Pool di connessioni JDBC" e configura i valori seguenti rispetto al tuo database (fai riferimento alla schermata per i valori di esempio)
- Classe driver JDBC
- URL connessione JDBC
- Nome utente e password
- Nome origine dati
Passaggio 3: Segui i passaggi descritti nel collegamento seguente e converti la configurazione OSGi in .cfg.json file, quindi aggiungilo alla configurazione del progetto in base a AEMaaCS Standard.