Bonjour,
Je vais essayer de vous résumer mon problème le plus possible.
J'ai un objet Prog qui est créé lors de a création de mon serveur.
J'ai une interface ModelInterface pour pouvoir chercher cet objet Prog
Voici une partie de mon serveur (il implémente l'interface ModeInterface)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 public interface ModelInterface extends Remote{ public Prog getProg() throws RemoteException; }
Donc si maintenant j'essaie d'obtenir mon objet prog en faisant (depuis le cient):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 public static void main(String[] args) throws Exception { String serverName = "Server"; Server server = new Server(); try{ //le registre RMI est initialisé ici! java.rmi.registry.LocateRegistry.createRegistry(1099); } catch (Exception e) { System.out.println("Erreur: le programme n'a pas pu créer le registre"); } //On lance le rebind avec le nom du serveur et l'objet serveur qu'on vient de créer Naming.rebind(serverName, server); //On affiche l'adresse IP du serveur System.out.println(serverName +" est en marche" + " l'adresse IP du serveur est: "+ InetAddress.getLocalHost().toString()); //Une instance de la classe prog, qui gère le jeu, est lancée prog = new Prog(); FakeFill fakefill = new FakeFill(prog); fakefill.fill(); } /** * Envoie l'objet Prog */ public Prog getProg() throws RemoteException { return prog; }
Il me retourne une erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 public static void main(String[] args) throws RemoteException { //ici on introduit l'adresse IP du serveur String hostname = "//127.0.1.1/Server"; if (args.length > 0) { hostname = args[0]; } else { System.out.println("Pas de hostname saisi, le client est lancé" + " sur cette machine"); } try{ /**Le client effectue un lookup sur les deux interfaces du jeu, * pourintéragir avec le serveur */ modelServ = (ModelInterface) Naming.lookup(hostname); System.out.println("La connexion au serveur a été établie!"); } catch(Exception e){ System.out.println("Le serveur n'a pas été trouvé!"); } finally{ // C'EST ICI QUE CA NE MARCHE PAS!!! Prog prog =modelServ.getProg(); } }
D'où provient cette erreure et comment faire pour pouvoir utiliser cet objet prog?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Exception in thread "main" java.lang.ClassCastException: $Proxy1 cannot be cast to Model.Prog at $Proxy0.getProg(Unknown Source) at okstats.OkStatsClient.main(OkStatsClient.java:61)
Merci
Partager