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

Entrée/Sortie Java Discussion :

[Débutant] RMI: Problème avec UnicastRemoteObject


Sujet :

Entrée/Sortie Java

  1. #1
    Membre régulier
    Inscrit en
    Mars 2006
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 97
    Points : 104
    Points
    104
    Par défaut [Débutant] RMI: Problème avec UnicastRemoteObject
    Bonjour à tous,

    Je dois développer une application utilisant Rmi en y appliquant du Mvc.

    Pour ce faire, j'ai développer 2 applications:
    - 1 serveur Rmi avec une factory et des objets métiers.
    - 1 client se connectant au serveur Rmi et travaillant avec la factory pour traiter les objets métiers.

    La partir Rmi fonctionne bien.
    Par contre pour la partie Mvc, je coince. Voici un petit topo de ce que j'ai implémenté et comment je l'ai fait.
    J'ai pris le choix d'implémenter Observer/Observable.

    Côté serveur, j'ai été confronté à un premier problème qui était le fait qu'en rmi mes classes hérite de UnicastRemoteObject:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public class AnnuaireBuilderImpl  extends UnicastRemoteObject
    Comme j'ai besoin que ce soit par exemple cette classe qui soit Observable, j'ai décidé de la faire hérité de Observable et d'utiliser dans le constructeur la méthode static UnicastRemoteObject.exportObject(this) pour rendre cette objet "rmisable".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public class AnnuaireBuilderImpl  extends UnicastRemoteObject {
        private Vector listeAnnu;
        private String nom;
        private Vector listeClient;
     
        public AnnuaireBuilderImpl() throws RemoteException{
            this.listeAnnu = new Vector();
            this.listeClient = new Vector();
            UnicastRemoteObject.exportObject(this);
        };
    ...
    Donc côté serveur, pas de soucis.

    Maintenant, côté client, je vais devoir ajouter mon Gui (ou du moins une partie) comme étant un observer de ma classe observable.
    Mais comme je suis en rmi, je dois également, pour réaliser cette opération, rendre mon gui "rmisable".
    Pour ce faire, j'utilisa la même logique que précédement, mais là ca coince.
    La méthode static UnicastRemoteObject.exportObject se met en erreur.
    Netbeans me dit: Cannot find symbol.
    Voici le code:

    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
    import Interface.Annuaire;
    import Interface.AnnuaireBuilder;
    import Interface.ClientPhysique;
    import java.net.MalformedURLException;
    import java.rmi.*;
    import java.rmi.RemoteException;
    import java.rmi.server.UnicastRemoteObject;
    import java.rmi.Naming;
    import java.rmi.NotBoundException;
    import java.rmi.RemoteException;
    import java.rmi.server.UnicastRemoteObject;
    import java.util.Observable;
    import java.util.Observer;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    
    public class FRM_RmiTestFactoryClient2 extends javax.swing.JFrame implements Observer{
        AnnuaireBuilder annuBuilder = null;
        Annuaire annu = null;
        ClientPhysique client = null; 
        
        /** Creates new form FRM_RmiTestFactoryClient2 */
        public FRM_RmiTestFactoryClient2() throws RemoteException{
                UnicastRemoteObject.exportObject(this);   
                initComponents();
        }
    ..
    Je ne comprend pas ce qu'il se passe.

  2. #2
    Membre régulier
    Inscrit en
    Mars 2006
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 97
    Points : 104
    Points
    104
    Par défaut
    J'ai un peu chipoter dans tout les sens et j'ai réussis à faire disparaitre l'erreur en créant une interfance:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    import java.rmi.Remote;
     
    /**
     *
     * @author olivierm
     */
    public interface IFrm extends Remote{
     
    }
    Comme vous le voyez, il n'y a rien dedans.
    Et je l'ai implémenté dans ma JFrame

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public class FRM_RmiTestFactoryClient2 extends javax.swing.JFrame implements Observer, IFrm{
    Maintenant la méthode UnicastRemoteObject.exportObject n'est plus en erreur.

    Je ne comprends rien à ce truc, est ce qu'une bonne âme aurait une explication pour moi. Est ce l'extends Remote qui fait toute la différence?

  3. #3
    Membre régulier
    Inscrit en
    Mars 2006
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 97
    Points : 104
    Points
    104
    Par défaut
    Mouais, au final, ca ne marche de toute facons pas. Je n'ai plus d'erreur à ce niveau, mais dès que je fais un addObserver(maJFrame), je tombe en erreur.

    Rmi + mvc, je n'y comprend rien ......

Discussions similaires

  1. [RMI]Problème avec le Skeleton
    Par Verboz dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 12/01/2007, 07h58
  2. [débutant][servlet]Problème avec Servlet login
    Par stago dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 10/05/2005, 00h05
  3. [Débutant(e)] Problème avec JaxB !
    Par garulfo2 dans le forum Persistance des données
    Réponses: 6
    Dernier message: 08/02/2005, 09h28
  4. [Débutant][Phppgadmin] problème avec les types
    Par PoY dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 19/08/2004, 17h06
  5. Réponses: 5
    Dernier message: 19/08/2004, 11h11

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