Pregunta

¿Cómo uso RMI para conectarme al repositorio CRX desde CQ5.6.x desde una aplicación externa?

 

Respuesta y resolución

1. Por defecto, el oyente de conexión RMI no está habilitado; para habilitarlo, debe configurarlo.

 

Acceda a una pestaña de configuración en la consola OSGI: http://host:port/system/console/configMgr. Busque Apache Sling JCR Repository RMI Registrar. El puerto RMI predeterminado es 1099. Necesita volver a guardar o cambiar el valor del puerto para habilitar el listener RMI.

 

2. La siguiente salida en un archivo error.log que indica que RMI está listo:

*INFO* [CM Event Dispatcher (Fire ConfigurationEvent: pid=org.apache.sling.jcr.jackrabbit.server.RmiRegistrationSupport)] org.apache.sling.jcr.registration Uso del puerto de registro RMI 1199

*INFO* [CM Event Dispatcher (Fire ConfigurationEvent: pid=org.apache.sling.jcr.jackrabbit.server.RmiRegistrationSupport)] org.apache.sling.jcr.registration Usar registro privado de RMI en 1199

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

 

3. Escribe una clase java que se conecte a CRX a través de RMI. A continuación, se muestra un ejemplo muy sencillo que muestra cómo iniciar sesión en el CRX y obtener una sesión de Crx:

 

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

importar javax.jcr.Repository;

importar javax.jcr.Session;

importar javax.jcr.jcr.SimpleCredentials;

clase pública 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;

              Espacio de trabajo de cadenas = "crx.default";

              Nombre de usuario de la cadena = "admin";

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

              try {

                     repositorio = factory.getRepository(repoUrl);

                     Sesión 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();

              }

       }

}

 

Esta obra está autorizada con arreglo a la licencia de Reconocimiento-NoComercial-CompartirIgual 3.0 Unported de Creative Commons.  Los términos de Creative Commons no cubren las publicaciones en Twitter™ y Facebook.

Avisos legales   |   Política de privacidad en línea