Come si usa RMI per connettersi all'archivio CRX da CQ 5.6.x da un'applicazione esterna

Domanda

Come si usa RMI per connettersi all'archivio CRX da CQ 5.6.x da un'applicazione esterna?

 

Risposta, risoluzione

1. Per impostazione predefinita, il listener della connessione RMI non è abilitato; per abilitarlo deve essere configurato.

 

Accedi a una scheda di configurazione nella console OSGI: http://host:port/system/console/configMgr. Trova "Apache Sling JCR Repository RMI Registrar". La porta RMI predefinita è 1099. È necessario salvare nuovamente o modificare il valore della porta per abilitare il listener RMI.

 

2. Il seguente risultato in un file error.log indica che RMI è pronto:

*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. Scrivi una classe Java che si connette a CRX tramite RMI. Di seguito è riportato un esempio molto semplice che mostra come accedere al CRX e ottenere una sessione Crx:

 

importa org.apache.jackrabbit.jackrabbit.rmi.clientRepositoryFactory;

importa javax.jcr.Repository;

importa javax.jcr.Session;

importa javax.jcr.SimpleCredentials;

classe pubblica CRXtoRMI {

       public static void main (String[] args){

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

              ClientRepositoryFactory factory = new ClientRepositoryFactory();

              Archivio archivio;

              Stringa crxApplicationName = "virtual-crx";

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

              Stringa workspace = "crx.default";

              Stringa username = "admin";

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

              try {

                     repository = factory.getRepository(repoUrl);

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

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

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

              } catch (Exception e) {

                     e.printStackTrace();

              }

       }

}

 

 Adobe

Ottieni supporto in modo più facile e veloce

Nuovo utente?

Adobe MAX 2024

Adobe MAX
La conferenza sulla creatività

14-16 ottobre Miami Beach e online

Adobe MAX

La conferenza sulla creatività

14-16 ottobre Miami Beach e online

Adobe MAX 2024

Adobe MAX
La conferenza sulla creatività

14-16 ottobre Miami Beach e online

Adobe MAX

La conferenza sulla creatività

14-16 ottobre Miami Beach e online