Frage

Wie kann ich mit RMI eine Verbindung zu CRX aus einer externen Anwendung herstellen?

Antwort, Auflösung

Der RMI-Verbindungslistener wird in web.xml der crx-Webanwendung konfiguriert. In einer Standardinstallation wird die WAR-Datei nach crx_install_dir/server/runtime/0/_crx/ extrahiert. Sie finden web.xml unter crx_install_dir/server/runtime/0/_crx/WEB-INF/webxml.

Standardmäßig ist RMI nicht aktiviert. Um es zu aktivieren, müssen Sie Folgendes tun:

  1. Bearbeiten Sie web.xml und kommentieren Sie die folgenden Zeilen unter Repository Servlet aus
    <init-param> <param-name>rmi-port</param-name> <param-value>1234</param-value> <description> Der RMI-Port für die Registrierung des Repositorys in dem RMI-Register. Wenn gleich 0 ist, wird der Standardport verwendet. Lassen Sie diesen Parameter aus, um den RMI-Server vollständig zu deaktivieren. </description> </init-param>
    

  2. Starten Sie CRX neu und stellen Sie sicher, dass Ihr Server den definierten Port überwacht (Sie können den Unix-Befehl: lsof -i verwenden)
  3. Schreiben Sie eine Java-Klasse, die über RMI eine Verbindung zu CRX herstellt. Nachfolgend ist ein sehr einfaches Beispiel angeführt, das zeigt, wie man sich am CRX anmeldet und eine Crx-Sitzung erhält:
    import javax.jcr.Repository; import javax.jcr.Session; import javax.jcr.SimpleCredentials; import org.apache.jackrabbit.rmi.client.ClientRepositoryFactory; /* * Simple CRX RMI test class that connects to the CRX and logs in as admin * */ public class RMITest { public static void main (String[] args){ ClientRepositoryFactory factory = new ClientRepositoryFactory(); Repository repository; String crxApplicationName = "crx"; String repoUrl = "//localhost:1234/"+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("userId:"+s.getUserID()); } catch (Exception e) { e.printStackTrace(); } } }
    

Hinweis

Damit diese Funktion funktioniert, müssen Sie die entsprechenden jar-Dateien verwenden.

\crx-quickstart\server\lib\container\jcr-*.*.jar

\crx-quickstart\server\lib\server\slf4j-log4j12-*.*.jar

\crx-quickstart\server\lib\server\log4j-*.*.*.jar

\crx-quickstart\server\runtime\0\_crx\WEB-INF\lib\jackrabbit-jcr-rmi-*.*.*.jar

\crx-quickstart\server\runtime\0\_crx\WEB-INF\lib\crx-rmi-*.*.*.jar

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