Bonsoir à tous,

Je me suis lancé dans la réalisation d'un chat, j'ai donc crée deux interfaces
ChatUser.java (client) et ChatRoom.java (serveur), ChatRoom étant implémentée par ChatRoomImpl, tout compile merveilleusement bien ... mais ensuite quand j'utilise Il me crée bien ChatRoomImpl_Stub.class mais pas de _Skel...
Mes codes ont l'air correct...qu'est ce que j'ai mal fait ou pas fait ? avez vous une idée s'il vous plait? merci d'avance de votre aide... C'est vraiment très important pour moi.

Code de ChatUser.java
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
import java.rmi.*;
 
public interface ChatUser extends Remote{
    /*Méthode permettant d'afficher les messages publiés sur la salle de discussion
    dans les fenetres de tout les objets distants que sont les utilisateurs*/
    public void displayMessage(String message) throws RemoteException;
}
Code de ChatRoom.java
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
import java.rmi.*;
 
public interface ChatRoom extends Remote{
    //Méthode permettant l'élaboration de la connexion à la salle de discussion
    public void subscribe(ChatUser user, String pseudo)throws RemoteException;
 
    //Méthode permettant la deconnexion de la salle de discussion
    public void unsubscribe(String pseudo)throws RemoteException;
 
    //Méthode permettant la publication de messages dans la salle de discussion    
    public void postMessage(String pseudo, String message)throws RemoteException;
}
Code de ChatRoomImpl.java
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import java.rmi.*;
import java.rmi.server.*;
import java.rmi.registry.*;
import java.util.*;
import java.io.*;
 
public class ChatRoomImpl extends UnicastRemoteObject implements ChatRoom{
 
    //Gestion du serialVersionUID de la classe serialisable
    private static final long serialVersionUID = 1L;
 
    //Création de la Hashtable
    private Hashtable<String,ChatUser> users = new Hashtable<String,ChatUser>();
 
 
    /*Spécification du constructeur de la classe qui peut levé une
    exception en utilisant celui de la classe dont il hérite*/
    public ChatRoomImpl() throws RemoteException{
        super();
    }
 
 
    //Méthode permettant l'élaboration de la connexion à la salle de discussion
    public void subscribe(ChatUser user, String pseudo)throws RemoteException{
        String message="Connexion de "+pseudo;
        System.out.println(message);
        this.postMessage("ChatRoom",message);
 
        /*Insertion du nouvel utilisateur dans la hashtable de la salle de discussion,
        avec son pseudo et sa référence*/
        this.users.put(pseudo,user);
    }
 
 
    //Méthode permettant la deconnexion de la salle de discussion
    public void unsubscribe(String pseudo)throws RemoteException{
        String message="Déconnexion de "+pseudo;
        //Suppression de l'utilisateur de la table de référence de la salle de discussion
        this.users.remove(pseudo);
        System.out.print(message);
        this.postMessage("ChatRoom",message);    
    }
 
    //Méthode permettant la publication de messages dans la salle de discussion    
    public void postMessage(String pseudo, String message)throws RemoteException{
        String fullMessage= pseudo+" dit : "+message;
        System.out.print(fullMessage);
 
        /*Utilisation de l'enumeration qui permet de parcourir toute la Hashtable*/
        Enumeration enu= users.elements();
        while(enu.hasMoreElements()){
            ChatUser user=(ChatUser)enu.nextElement();
            user.displayMessage(fullMessage);
        }
 
    }
 
}