Hur ansluter jag Oraclets databas från AEM som en molntjänst?
I den här artikeln finns information om hur du ansluter Oracle-databasen från Adobe Experience Manager (AEM) som en molntjänst.
Beskrivning description
Miljö
Adobe Experience Manager
Problem/symtom
Hur ansluter jag Oraclets databas från AEM som en molntjänst?
Upplösning resolution
Så här ansluter du Oraclets databas från AEM som en molntjänst:
-
Lägga till Maven-beroende i Tom
-
AEM Service för att ansluta till Oraclets databas
-
OSGi-konfiguration
Lägger till Maven-beroende i rumpan
Steg 1: Inkludera det här maven-beroendet i projektets huvuddel 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>
Steg 2: Inkludera beroendet nedan i pom.xml för både "core" och "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 Oraclet ska anslutas till databasen
Exempel på tjänstkod för att ansluta till databasen från AEM som en molntjänst. Den kan inkluderas i sökvägen
path {0}" project folder" 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
Steg 1: Gå till AEM OSGi-konfiguration (http://localhost:4502/system/console/configMgr) lokalt.
Steg 2: Sök efter "JDBC Connection pool" och konfigurera nedanstående värden med avseende på din DB (se skärmbild för exempelvärden)
- Klassen JDBC Driver
- URL för JDBC-anslutning
- Användarnamn och lösenord
- Datakällans namn
Steg 3: Följ stegen i länken nedan och konvertera OSGi-konfigurationen till .cfg.json-filen och lägg till samma i projektkonfigurationen enligt AEMaaCS Standard.