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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
public interface ModelInterface extends Remote{
    public Prog getProg() throws RemoteException;
}
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
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;
 
     }
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
 
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();
       }
    }
Il me retourne une erreur:
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)
D'où provient cette erreure et comment faire pour pouvoir utiliser cet objet prog?

Merci