Bonjour à tous,
en fait j'ai deux problème légèrement opposé dans des exercices d'introductions aux RMI :
tout d'abord, le serveur partage un objet Hello avec une méthode sayHello, le client s'y connecte, affiche le HelloWorld retourné par le serveur et se termine (le client)
Mais par contre, le serveur ne termine jamais ça méthode main ...
je sais que la JVM attend que l'objet Hello ne soit plus référencé nulpart avec de se terminer, or ici cette objet semble rester dans le RMIregistry, et je ne sais pas comment l'enlever ...
Voici le code du serveur :
(pour le moment la méthode Hello.sayHello ne fait rien d'autre que retourner "HelloWorld")
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 String name = "Hello"; Hello engine = new HelloImpl(); Registry registry = LocateRegistry.getRegistry(args[0], Integer.parseInt(args[1])); registry.rebind(name, engine); System.out.println("Ready to say hello !");
Mon deuxieme probleme est ... que la méthode main de l'autre exercice n'attend pas la connexion du client !
Pourtant j'ai réutilisé le 1er code pour l'écrire, je ne comprend pas trop ...
Si quelqu'un à une idée de ce qui ne va pas dans mes codes, je teste toute suggestion !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 String name = "Bob"; Bob engine = new BobImpl(); Registry registry = LocateRegistry.getRegistry(args[0], Integer.parseInt(args[1])); registry.rebind(name, engine); System.out.println("Ready to receive the secret");
(s'il y a besoin d'autres parties du code aussi)
merci d'avance,
Best regards from Innsbruck, Austria
Kevin
Partager