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...
Code : Sélectionner tout - Visualiser dans une fenêtre à part rmic ChatRoomImpl
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 de ChatRoom.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 ChatRoomImpl.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 : 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); } } }
Partager