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

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();

              }

       }

}

 

 Adobe

Obtén ayuda de forma más rápida y sencilla

¿Nuevo usuario?