Come usare RMI per collegare CRX da un'applicazione esterna

Domanda

Come posso usare RMI per connettermi al CRX da un'applicazione esterna?

Risposta, Soluzione

Il listener di connessione RMI è configurato nel web.xml dell'applicazione Web CRX. Durante un'installazione predefinita, il file WAR viene estratto in crx_install_dir/server/runtime/0/_crx/. Puoi trovare web.xml sotto crx_install_dir/server/runtime/0/_crx/WEB-INF/webxml.

Per impostazione predefinita, l'RMI non è abilitato. Per abilitarlo devi:

  1. Modificare web.xml e commentare le seguenti righe nel servlet di archiviazione:
    <init-param> <param-name>rmi-porto</param-name> <param-value>1234</param-value> <description> La porta RMI per la registrazione dell'archivio nel registro RMI. Se uguale a 0, viene utilizzata la porta predefinita. Omettere questo parametro per disabilitare completamente il server RMI. </description> </init-param>
    

  2. Riavviare CRX e assicurarti che il tuo server sia in ascolto su una porta definita (puoi usare il comando unix: lsof -i).
  3. Scrivere un file class java che si connette a CRX tramite RMI. Di seguito è riportato un esempio molto semplice che mostra come accedere a CRX e ottenere una sessione CRX.
    importare javax.jcr.jcr.Repository; importare javax.jcr.jcr.javax.jcr.jcr.SimpleCredentials; importare org.apache.jackrabbit.rmi.client.ClientRepositoryFactory; /* * * * * Semplice class di prova RMI CRX che si connette al CRX e accede come amministratore * */ public class RMITest { public static void main (String[] args){ ClientRepositoryFactory factory = new ClientRepositoryFactory(); Repository repository repository; String crxApplicationName = "crx"; String repoUrl = "//localhost:1234/"+crxApplicationName; String workspace = String repoUrl = "//localhost:1234/"+crxApplicationName; String workspace = String workspace = new ClientRepositoryFactory(); String repoUrl = "//localhost:1234/"+crxApplicationName; String workspace=".default"; String username = "admin"; char [] password = "admin".toCharArray(); provare { repository = factory.getRepository(repoUrl); Session s = repository.login(nuovo SimpleCredentials(username, password), workspace); System.out.println("userId:"+s.getUserID()); } catch (Exception e) { e.printStackTrace(); } } }
    

Nota

Assicurati di avere pronti i seguenti file jar per far sì che tutto funzioni:

\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

Logo Adobe

Accedi al tuo account