Sie sehen sich Hilfeinhalte der folgenden Version an:

Sie können programmgesteuert Knoten und Eigenschaften ändern, die sich innerhalb des Adobe CQ-Repositorys befinden, das Teil von Adobe Marketing Cloud ist. Für den Zugriff auf das CQ-Repository verwenden Sie die Java Content Repository (JCR)-API. Mit der JCR-API können Sie Erstellungs-, Ersetzungs-, Aktualisierungs- und Lösch- (CRUD)-Vorgänge für Inhalte im Adobe CQ-Repository durchführen. Weitere Informationen zur JCR-API finden Sie unter http://jackrabbit.apache.org/jcr/jcr-api.html.

Hinweis:

Dieser Entwicklungsartikel modifiziert das Adobe CQ-JCR aus einer externen Java-Anwendung. Es besteht auch die Möglichkeit, das JCR aus einem OSGi-Bundle mithilfe der JCR-API zu modifizieren. Details finden Sie in Beibehalten von CQ-Daten im Java Content Repository.

Hinweis:

Fügen Sie dem Klassenpfad Ihrer Java-Anwendung die Datei „jackrabbit-standalone-2.4.0.jar“ hinzu, um die JCR-API zu verwenden. Diese JAR-Datei finden Sie auf der Webseite der JCR-API unter http://jackrabbit.apache.org/jcr/jcr-api.html.

Hinweis:

Eine Anleitung zur Abfrage des Adobe CQ-JCR mithilfe der JCR-Abfrage-API finden Sie in Abfragen von Adobe Experience Manager-Daten mit der JCR-API.

Repository-Instanz erstellen

Es gibt unterschiedliche Verfahren zur Herstellung einer Verbindung mit einem Repository. In diesem Entwicklungsartikel wird eine statische Methode verwendet, die der Klasse org.apache.jackrabbit.commons.JcrUtils zuzuordnen ist. Der Name der Methode lautet getRepository. Diese Methode verwendet einen Zeichenfolgenparameter, der die URL des Adobe CQ-Servers darstellt. Beispielsweise http://localhost:4503/crx/server.

Die Methode getRepository gibt eine Repository-Instanz zurück, was im folgenden Codebeispiel veranschaulicht wird.

//Create a connection to the AEM JCR repository running on local host
Repository repository = JcrUtils.getRepository("http://localhost:4503/crx/server");

Sitzungsinstanz erstellen

Die Repository-Instanz stellt das CRX-Repository dar. Mit der Repository-Instanz erstellen Sie eine Sitzung mit dem Repository. Zum Erstellen einer Sitzung rufen Sie die Anmeldemethode der Repository-Instanz auf und übergeben ein javax.jcr.SimpleCredentials-Objekt. Die Anmeldemethode gibt eine javax.jcr.Session-Instanz zurück.

Sie erstellen ein SimpleCredentials-Objekt, indem Sie seinen Konstruktor verwenden und die folgenden Zeichenfolgenwerte übergeben:

  • den Benutzernamen und
  • das zugehörige Kennwort

Rufen Sie bei der Übergabe des zweiten Parameters die Methode toCharArray des Zeichenfolgenobjekts auf. Der folgende Code zeigt, wie Sie die Anmeldemethode aufrufen, die eine javax.jcr.Sessioninstance zurückgibt.

//Create a Session instance
javax.jcr.Session session = repository.login( new SimpleCredentials("admin", "admin".toCharArray()));

Knoteninstanz erstellen

Nutzen Sie eine Sitzungsinstanz zur Erstellung einer javax.jcr.Node-Instanz. Mit einer Knoteninstanz können Sie Knotenvorgänge durchführen. Beispielsweise können Sie einen neuen Knoten erstellen. Um einen Knoten zu erstellen, der den Stammknoten darstellt, rufen Sie die getRootNode-Methode der Sitzungsinstanz auf. Dies wird in der folgenden Codezeile veranschaulicht.

//Create a Node
Node root = session.getRootNode();

Nach der Erstellung der Knoteninstanz können Sie verschiedene Aufgaben ausführen, z. B. einen anderen Knoten erstellen und ihm einen Wert hinzufügen. Mit dem folgenden Code werden beispielsweise zwei Knoten erstellt und dem zweiten Knoten ein Wert hinzugefügt.

// Store content 
Node day = adobe.addNode("day");
day.setProperty("message", "Adobe CQ is part of the Adobe Digital Marketing Suite!");

Knotenwerte abrufen

Zum Abrufen eines Knotens und seines Werts rufen Sie die getNode-Methode der Knoteninstanz auf und übergeben einen Zeichenfolgenwert, der den vollqualifizierten Pfad zum Knoten darstellt. Betrachten Sie die Knotenstruktur, die im vorherigen Codebeispiel erstellt wurde. Zum Abrufen des Tagesknotens geben Sie „adobe/day“ an, wie das folgende Codebeispiel zeigt:

// Retrieve content
Node node = root.getNode("adobe/day");
System.out.println(node.getPath());
System.out.println(node.getProperty("message").getString());

Knoten im Adobe CQ-Repository erstellen

Das folgende Java-Codebeispiel stellt eine Java-Klasse dar, die eine Verbindung mir Adobe CQ herstellt, eine Sitzungsinstanz erstellt und neue Knoten hinzufügt. Einem Knoten wird ein Datenwert zugewiesen, woraufhin der Wert des Knotens und seines Pfades aus der Konsole geschrieben wird. Melden Sie sich ab, um die Sitzung zu beenden.

/*
 * This Java Quick Start uses the jackrabbit-standalone-2.4.0.jar
 * file. See the previous section for the location of this JAR file
 */
 
import javax.jcr.Repository; 
import javax.jcr.Session; 
import javax.jcr.SimpleCredentials; 
import javax.jcr.Node; 
 
import org.apache.jackrabbit.commons.JcrUtils;
import org.apache.jackrabbit.core.TransientRepository; 
 
   
public class GetRepository { 
 
   
public static void main(String[] args) throws Exception { 
 
try { 
 
    //Create a connection to the CQ repository running on local host 
    Repository repository = JcrUtils.getRepository("http://localhost:4503/crx/server");
   
   //Create a Session
   javax.jcr.Session session = repository.login( new SimpleCredentials("admin", "admin".toCharArray())); 
 
  //Create a node that represents the root node
  Node root = session.getRootNode(); 
 
  // Store content 
  Node adobe = root.addNode("adobe"); 
  Node day = adobe.addNode("day"); 
  day.setProperty("message", "Adobe CQ is part of the Adobe Digital Marketing Suite!"); 
    
 
  // Retrieve content 
  Node node = root.getNode("adobe/day"); 
  System.out.println(node.getPath()); 
  System.out.println(node.getProperty("message").getString()); 
 
  // Save the session changes and log out
  session.save(); 
  session.logout();
  }
 catch(Exception e){
  e.printStackTrace();
  }
 } 
}

Nach dem Ausführen des vollständigen Codebeispiels und dem Erstellen der Knoten können Sie die neuen Knoten in CRXDE Lite anzeigen. Dies wird in der folgenden Illustration veranschaulicht.

chlimage_1

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie