Verbinden der Oracle-Datenbank von AEM as a Cloud Service
In diesem Artikel erfahren Sie, wie Sie die Oracle-Datenbank von Adobe Experience Manager (AEM) as a Cloud Service aus verbinden.
Beschreibung description
Umgebung
Adobe Experience Manager
Problem/Symptome
Verbinden der Oracle-Datenbank von AEM as a Cloud Service
Auflösung resolution
Das Verbinden der Oracle-Datenbank über AEM as a Cloud Service umfasst die folgenden Schritte:
-
Hinzufügen einer Maven-Abhängigkeit in POM
-
AEM-Dienst für die Verbindung mit der Oracle-Datenbank
-
OSGi-Konfiguration
Hinzufügen einer Maven-Abhängigkeit in POM
Schritt 1: Fügen Sie diese Maven-Abhängigkeit in die pom.xml Ihres Projekts ein
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc-bom</artifactId>
<version>21.5.0.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
Schritt 2: Schließen Sie die folgende Maven-Abhängigkeit in pom.xml von sowohl „core“ als auch „all“ ein.
<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-Service für die Verbindung mit der Oracle-Datenbank
Beispiel-Service-Code für die Verbindung mit der Datenbank von AEM as a Cloud Service. Er kann im Pfad {0} enthalten sein.
Pfad {0}" Projektordner“ Core“ Service
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);
}
}
}
OSGi-Konfiguration
Schritt 1: Wechseln Sie zur AEM-OSGi-Konfiguration (http://localhost:4502/system/console/configMgr) auf lokal.
Schritt 2: Suchen Sie nach „JDBC Connection pool“ und konfigurieren Sie die folgenden Werte in Bezug auf Ihre DB (Beispielwerte finden Sie im Screenshot)
- JDBC-Treiberklasse
- JDBC-Verbindungs-URL
- Benutzername und Kennwort
- Datenquellenname
Schritt 3: Führen Sie die Schritte im folgenden Link aus und konvertieren Sie die OSGi-Konfiguration in .cfg.json -Datei und fügen Sie sie gemäß AEMaaCS-Standard zu Ihrer Projektkonfiguration hinzu.