Programmatoegang tot het AEM JCR how-to-programmatically-access-the-aem-jcr
U kunt via programmacode knooppunten en eigenschappen wijzigen in de Adobe CQ-opslagplaats, die deel uitmaakt van de Adobe Marketing Cloud. Als u toegang wilt krijgen tot de CQ-opslagplaats, gebruikt u de JCR-API (Java Content Repository). U kunt de Java JCR API gebruiken om (CRUD)-bewerkingen te maken, te vervangen, bij te werken en te verwijderen op inhoud in de Adobe CQ-opslagplaats. Voor meer informatie over de Java JCR API raadpleegt u https://jackrabbit.apache.org/jcr/jcr-api.html.
jackrabbit-standalone-2.4.0.jar
bestand naar het klassepad van uw Java-toepassing. U kunt dit JAR-bestand verkrijgen via de Java JCR API-webpagina op https://jackrabbit.apache.org/jcr/jcr-api.html.Een instantie Repository maken create-a-repository-instance
Hoewel er verschillende manieren zijn om verbinding te maken met een opslagplaats en een verbinding tot stand te brengen, gebruikt dit ontwikkelingsartikel een statische methode die tot de org.apache.jackrabbit.commons.JcrUtils
klasse. De naam van de methode is getRepository
. Deze methode gebruikt een tekenreeksparameter die de URL van de Adobe CQ-server vertegenwoordigt. Bijvoorbeeld http://localhost:4503/crx/server
.
De getRepository
methode retourneert een Repository
-instantie, zoals in het volgende codevoorbeeld wordt getoond.
//Create a connection to the AEM JCR repository running on local host
Repository repository = JcrUtils.getRepository("http://localhost:4503/crx/server");
Een instantie Sessie maken create-a-session-instance
De Repository
-instantie staat voor de CRX-opslagplaats. U gebruikt de Repository
-instantie om een sessie met de gegevensopslagruimte tot stand te brengen. Als u een sessie wilt maken, roept u de opdracht Repository
van login
methode en een javax.jcr.SimpleCredentials
object. De login
methode retourneert een javax.jcr.Session
-instantie.
U maakt een SimpleCredentials
object door de constructor ervan te gebruiken en de volgende tekenreekswaarden door te geven:
- de gebruikersnaam;
- Het bijbehorende wachtwoord
Roep bij het doorgeven van de tweede parameter het object String toCharArray
methode. De volgende code laat zien hoe u de login
methode die een javax.jcr.Sessioninstance
.
//Create a Session instance
javax.jcr.Session session = repository.login( new SimpleCredentials("admin", "admin".toCharArray()));
Een Node-instantie maken create-a-node-instance
Een Session
instantie om een javax.jcr.Node
-instantie. A Node
Met instantie kunt u knooppuntbewerkingen uitvoeren. U kunt bijvoorbeeld een nieuw knooppunt maken. Als u een knooppunt wilt maken dat het hoofdknooppunt vertegenwoordigt, roept u het Session
instantie getRootNode
, zoals in de volgende coderegel wordt getoond.
//Create a Node
Node root = session.getRootNode();
Wanneer u een Node
kunt u taken uitvoeren, zoals het maken van een ander knooppunt en het toevoegen van een waarde aan dat knooppunt. Met de volgende code worden bijvoorbeeld twee knooppunten gemaakt en een waarde toegevoegd aan het tweede knooppunt.
// Store content
Node day = adobe.addNode("day");
day.setProperty("message", "Adobe CQ is part of the Adobe Digital Marketing Suite!");
Nodewaarden ophalen retrieve-node-values
Om een knoop en zijn waarde terug te winnen, haal Node
van getNode
methode en geef een koordwaarde door die volledig-gekwalificeerde weg aan de knoop vertegenwoordigt. Overweeg de knoopstructuur die in het vorige codevoorbeeld wordt gecreeerd. Als u het dagknooppunt wilt ophalen, geeft u adobe/day op, zoals in de volgende code wordt getoond:
// Retrieve content
Node node = root.getNode("adobe/day");
System.out.println(node.getPath());
System.out.println(node.getProperty("message").getString());
Maak knooppunten in de Adobe CQ Repository create-nodes-in-the-adobe-cq-repository
In het volgende Java-codevoorbeeld wordt een Java-klasse voorgesteld die verbinding maakt met Adobe CQ. Session
en voegt nieuwe knooppunten toe. Een knoop wordt toegewezen een gegevenswaarde en dan wordt de waarde van de knoop en zijn weg geschreven aan de console. Als u klaar bent met de sessie, moet u zich afmelden.
/*
* 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();
}
}
}
Nadat u het volledige codevoorbeeld in werking stelt en de knopen creeert, kunt u de nieuwe knopen in bekijken CRXDE Lite, zoals in de volgende afbeelding wordt getoond.