cs_bordeaux
Messages postés35Date d'inscriptionlundi 6 décembre 2004StatutMembreDernière intervention14 juin 2008
-
26 déc. 2006 à 17:29
indiana_jules
Messages postés750Date d'inscriptionmardi 9 mars 2004StatutMembreDernière intervention23 décembre 2008
-
27 déc. 2006 à 10:13
Bonjour,
ca fait trois jours que j'essaye de faire fonctionner un Hello World en utlisant le RMI!!!!
Le contexte : je travail sous Linux et Windows et j'utilise la jdk1.5.0.10 avec Eclipse 3.1.2
J'ai commencé par un premier exemple :
http://www.enseignement.polytechnique.fr/profs/informatique/Eric.Goubault/Cours05html/poly009.html Cet exemple fonctionne très bien lorsque j'écris toutes les étapes à la manot, comme rmiregistry et rmic et quand j'essaye de le lancer avec Eclipse (qui doit gérer tout ca automatiquement) ca marche pas. sous windows ca marche ni sous Eclipse ni à la manot.
=> J'en ai conclu que ca provenait de ma version de jdk et de celle de l'exemple, en effet il y a beaucoup de modification entre la jdk1.4 et jdk1.5 pour les RMI.
Ensuite je suis tombé sur le meilleur exemple qui soit, celui de sun...
http://java.sun.com/j2se/1.5.0/docs/guide/rmi/hello/hello-world.html#4 Il est spécialement pour écrit pour la version jdk1.5, alors je copie les classes et lance les commandes et ca ne marche pas non plus ni sous linux ni sous windows et encore moins avec Eclipse.
Je suis vraiment à la rue. Je voudrais juste avoir un exemple d'utilisation de RMI qui fonctionne sous Eclipse, est-ce quelqu'un pourrait m'aider??
indiana_jules
Messages postés750Date d'inscriptionmardi 9 mars 2004StatutMembreDernière intervention23 décembre 200822 27 déc. 2006 à 10:13
Salut
il ne me semble pas qu'Eclipse gére nativement les commandes RMI. En revanche, pourquoi taper à la main les commandes RMI alors que nous pouvons les utiliser directement dans son programme :)
En effet, nous pouvons avoir :
Côté serveur:
//Nous lancons le serveur de registre RMI avec le port par défaut (1099)
System.out.println("Démarrage du serveur de registre");
LocateRegistry.createRegistry(1099);
//Initialisation du dictionnaire
System.out.println("Préparation de l'export des objets");
Factory fact = new Factory();
Dictionnary dico = new Dictionnary();
//Préparation du registre
System.out.println("Insertion dans le registre");
Naming.rebind("ifact", fact);
Naming.rebind("idico", dico);
Côté client:
//Préparation du registre
System.out.println("Récupération du registre distant sur <"+monAdresseIp+">");
Registry reg = LocateRegistry.getRegistry(monAdresseIp);
//Récupération des éléments du registre
System.out.println("Récupération des éléments du registre");
IFactory ifact = (IFactory)reg.lookup("ifact");
IDictionnary idico = (IDictionnary)reg.lookup("idico");