J'ai posté hier pour un problème dont j'avais pris une classe statique responsable, mais là je crois que je viens de comprendre. Ca n'a rien à voir avec cette classe, mais bien avec mon serveur RMI.
Voilà j'ai un serveur et un client RMI. (jusque là tout va bien).
Classe serveur :
ensuite il y a la classe Jeu
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 //Je vous passe l'interface RMI... public class CommunicateurServeur extends UnicastRemoteObject implements CommunicateurInterFace{ private Jeu jeu; //un constructeur dans lequel on fait le rebind... et où on déclare un objet Jeu... public CommunicateurServeur(Jeu jeu){ ...} //une méthode dans laquelle on peut obtenir l'objet Jeu public Jeu obtenirJeu() throws RemoteException{ return jeu; } }
qui sait faire des traitements, en utilisant d'autres objets imbriqués... C'est aussi ma classe contenant le main de mon serveur. Je vais écrire un petit exemple.
Et enfin le client dans lequel on appelle notre classe
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public Jeu extends Serializable, ActionListener{ //constructeur où on instancie la classe présentée précédemment,.... //main dans lequel on instancie Jeu, dans lequel on met le driver MySql.... //méthode dans laquelle on crée un objet Utilisateur : public Utilisateur creerJoueur(String identifiant, String motPasse, String eMail) { Utilisateur utilisateur=Utilisateur.creerUtilisateur(identifiant,motPasse,eMail,"joueur",listeUtilisateur); ... listeUtilisateur.put(utilisateur.id,utilisateur); ... return Utilisateur }
Je ne parle pas de syntaxe : il n'y a pas d'erreur dans mon programme il tourne très bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 this.utilisateur=communicateur.obtenirJeu().creerJoueur(identifiant,motPasse,eMail);
Le problème que j'avais repéré c'est que je ne voyais pas arriver au sein de ma classe serveur, mes utilisateurs créés.
Je crois que je viens de comprendre, mais je voudrais m'assurer que c'est ça.
RMI me télécharge le contenu du serveur, et donc mon objet Jeu, mais si je l'utilise, je l'utilise localement au lieu d'utiliser l'instance qui se trouve sur le serveur.
Mon hypothèse est elle juste ? Que faudrait-il faire ?
Merci d'avance parce que je galère et je ne connais personne à qui demander.
Partager