Pergunta

Como usar o RMI para conectar ao repositório CRX do CQ 5.6.x de um aplicativo externo?

 

Resposta, Resolução

1. Por padrão, o ouvinte da conexão RMI não está ativado; configure-o para ativá-lo.

 

Faça logon em uma guia Configuração no console OSGI: http://host:port/system/console/configMgr. Encontre "Apache Sling JCR Repository RMI Registrar". A porta RMI padrão é 1099. Você precisa salvar novamente ou alterar o valor da porta para habilitar o ouvinte RMI.

 

2. O seguinte resultado em um arquivo error.log indica que o RMI está pronto:

*INFO* [CM Event Dispatcher (Fire ConfigurationEvent: pid=org.apache.sling.jcr.jackrabbit.server.RmiRegistrationSupport)] org.apache.sling.jcr.registration Usando a porta Registro RMI 1199

*INFO* [CM Event Dispatcher (Fire ConfigurationEvent: pid=org.apache.sling.jcr.jackrabbit.server.RmiRegistrationSupport)] org.apache.sling.jcr.registration Usando o Registro RMI particular em 1199

*INFO* [CM Event Dispatcher (Fire ConfigurationEvent: pid=org.apache.sling.jcr.jackrabbit.server.RmiRegistrationSupport)] org.apache.sling.jcr.registration repositório vinculado ao // server_name:1199 / virtual-crx

 

3. Escreva uma classe java que se conecta ao CRX por meio do RMI. Abaixo está um exemplo simples de como fazer logon no CRX e obter uma sessão Crx:

 

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

importar javax.jcr.Repository;

importar javax.jcr.Session;

importar javax.jcr.SimpleCredentials;

público classe CRXtoRMI {

       público estático nulo principal (sequência[] args){

              Sistema.saída.println("Conexão de Teste RMI para CRX:");

              ClientRepositoryFactory factory = novo ClientRepositoryFactory ();

              Repositório repositório;

              Sequência crxApplicationName = "virtual-crx";

              Sequência repoUrl = "//localhost:1199/"+crxApplicationName;

              Sequência de workspace = "crx.default";

              Sequência nome de usuário = "admin";

              caracteres [] senha = "admin".toCharArray();

              testar {

                     repositório = factory.getRepository (repoUrl);

                     Sessão s = repository.login (novo SimpleCredentials (nome de usuário, senha), workspace);

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

                     Sistema.saída.println ("userId:" s.getUserID ());

              } captura (Exceção e) {

                     e.printStackTrace();

              }

       }

}

 

Esta obra está licenciada sob uma licença não adaptada da Creative Commons Attribution-Noncommercial-Share Alike 3.0  As publicações do Twitter™ e do Facebook não são cobertas pelos termos do Creative Commons.

Avisos legais   |   Política de privacidade online