Question

Comment utiliser RMI pour se connecter à CRX à partir d’une application externe ?

Réponse, résolution

L'écouteur de connexion RMI est configuré dans web.xml de l'application Web crx. Dans une installation par défaut, le fichier war est extrait vers crx_install_dir/server/runtime/0/_crx/. Vous trouverez web.xml dans crx_install_dir/server/runtime/0/_crx/WEB-INF/webxml.

RMI n’est pas activé par défaut. Pour l’activer vous devez :

  1. Modifiez le fichier web.xml et commentez les lignes suivantes dans le servlet du référentiel.
    <init-param> <param-name>rmi-port</param-name> <param-value>1234</param-value> <description> Le port RMI pour enregistrer le référentiel dans le registre RMI. Si égal à 0, le port par défaut est utilisé. Omettez ce paramètre pour désactiver le serveur RMI complètement : </description> </init-param>
    

  2. Redémarrez CRX et assurez-vous que votre serveur écoute sur le port défini (vous pouvez utiliser la commande unix : lsof -i)
  3. Créez une classe java qui se connecte au CRX via RMI. Voici un exemple simple montrant comment se connecter au CRX et obtenir une session Crx :
    import javax.jcr.Repository; import javax.jcr.Session; import javax.jcr.SimpleCredentials; import org.apache.jackrabbit.rmi.client.ClientRepositoryFactory; /* * Simple CRX RMI test class that connects to the CRX and logs in as admin * */ public class RMITest { public static void main (String[] args){ ClientRepositoryFactory factory = new ClientRepositoryFactory(); Repository repository; String crxApplicationName = "crx"; String repoUrl = "//localhost:1234/"+crxApplicationName; String workspace = "crx.default"; String username = "admin"; char [] password = "admin".toCharArray(); try { repository = factory.getRepository(repoUrl); Session s = repository.login(new SimpleCredentials(username,password), workspace); System.out.println("userId:"+s.getUserID()); } catch (Exception e) { e.printStackTrace(); } } }
    

Note

Vérifiez que vous disposez des fichiers jar suivants pour que cela fonctionne :

\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

Ce produit est distribué sous licence Creative Commons Attribution - Pas d’utilisation commerciale - Partage à l’identique 3.0 non transposé  Les publications Twitter™ et Facebook ne sont pas couvertes par les dispositions Creative Commons.

Mentions légales   |   Politique de confidentialité en ligne