IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Java Discussion :

Problème RMI, création _Skel.class


Sujet :

API standards et tierces Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de ikeaboy
    Inscrit en
    Novembre 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Novembre 2004
    Messages : 114
    Par défaut Problème RMI, création _Skel.class
    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);
            }
     
        }
     
    }

  2. #2
    Membre confirmé Avatar de ikeaboy
    Inscrit en
    Novembre 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Novembre 2004
    Messages : 114
    Par défaut
    Bon alors j'ai un début de réponse... dans un livre j'ai lu ceci :

    Les skeletons ne sont plus obligatoires depuis Java 2. Cependant, ils sont nécessaires si vous travaillez avec RMI de Java 1.1. Il est tout de même conseillé de les utiliser dans un souci de compatibilité. Un skeleton est un objet Java résident sur la machine du serveur. Le système RMI 1.1 lui permet de recevoir les requêtes, de traiter la désérialisation, et d'invoquer le code approprié sur le serveur.
    Je travaille avec java 1.5.0_03

    Mais alors pourquoi sommes nous dans l'impossibilité de générer le skeletons quand meme? justement pour la compatibilité... Et surtout, comment java fait pour se passer du Skeleton ?

    Si vous avez des explications... merci d'avance

  3. #3
    Membre confirmé Avatar de ikeaboy
    Inscrit en
    Novembre 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Novembre 2004
    Messages : 114
    Par défaut
    Finalement on a plus besoin du _Skel avec java 2

    http://www.developpez.net/forums/showthread.php?t=98461

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème de création une classe d’association
    Par mondher bensalem dans le forum Doctrine2
    Réponses: 0
    Dernier message: 08/04/2013, 15h12
  2. Problème de création de classes
    Par pafi76 dans le forum C++
    Réponses: 4
    Dernier message: 17/05/2007, 14h17
  3. [RMI] problème Création *_stub.class et *_skel.class
    Par philobedo dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 29/05/2006, 20h03
  4. [RMI-IIOP] Problème de création des stubs...
    Par nana1 dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 25/10/2005, 17h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo