Verwenden von RMI für die Herstellung einer Verbindung zum CRX-Repository von CQ 5.6.x aus einer externen Anwendung

Frage

Wie verwende ich RMI für die Herstellung einer Verbindung zum CRX-Repository von CQ 5.6.x aus einer externen Anwendung?

 

Antwort, Auflösung

1. Standardmäßig ist der RMI-Verbindungs-Listener nicht aktiviert; um ihn zu aktivieren, muss er konfiguriert werden.

 

Melden Sie sich in der OSGi-Konsole auf der Registerkarte „Konfiguration“ an: http://host:port/system/console/configMgr. Suchen Sie „Apache Sling JCR Repository RMI Registrar“. Der standardmäßige RMI-Port ist 1099. Sie müssen den Portwert erneut speichern oder ändern, um den RMI-Listener zu aktivieren.

 

2. Die folgende Ausgabe in eine error.log-Datei zeigt an, dass RMI bereit ist:

*INFO* [CM Event Dispatcher (Fire ConfigurationEvent: pid=org.apache.sling.jcr.jackrabbit.server.RmiRegistrationSupport)] org.apache.sling.jcr.registration Using RMI Registry port 1199

*INFO* [CM Event Dispatcher (Fire ConfigurationEvent: pid=org.apache.sling.jcr.jackrabbit.server.RmiRegistrationSupport)] org.apache.sling.jcr.registration Using private RMI Registry at 1199

*INFO* [CM Event Dispatcher (Fire ConfigurationEvent: pid=org.apache.sling.jcr.jackrabbit.server.RmiRegistrationSupport)] org.apache.sling.jcr.registration Repository bound to //server_name:1199/virtual-crx

 

3. Erstellen Sie eine Java-Klasse, die sich über RMI mit CRX verbindet. Nachfolgend finden Sie ein sehr einfaches Beispiel, wie Sie sich bei CRX anmelden und eine CRX-Sitzung erhalten:

 

import org.apache.jackrabbit.rmi.client.ClientRepositoryFactory;

import javax.jcr.Repository;

import javax.jcr.Session;

import javax.jcr.SimpleCredentials;

public class CRXtoRMI {

       public static void main (String[] args){

              System.out.println("RMI to CRX Test Connection:");

              ClientRepositoryFactory factory = new ClientRepositoryFactory();

              Repository repository;

              String crxApplicationName = "virtual-crx";

              String repoUrl = "//localhost:1199/"+crxApplicationName;

              String workspace = "crx.default";

              String username = "admin";

              char [] password = "admin".toCharArray();

              try {

                     repository = factory.getRepository(repoUrl);

                     Session s = repository.login(new SimpleCredentials(username,password), workspace);

                     System.out.println("Workspace: " + s.getWorkspace().getName());

                     System.out.println("userId: "+s.getUserID());

              } catch (Exception e) {

                     e.printStackTrace();

              }

       }

}

 

 Adobe

Schneller und einfacher Hilfe erhalten

Neuer Benutzer?

Adobe MAX 2024

Adobe MAX
Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online

Adobe MAX

Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online

Adobe MAX 2024

Adobe MAX
Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online

Adobe MAX

Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online