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

avec Java Discussion :

Problème avec RMI


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Avril 2011
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2011
    Messages : 139
    Par défaut Problème avec RMI
    Salut

    J'ai commencé aujourd'hui a étudié les systémes réparties en java car au deuxiéme semestre on aura module systéme répartie et en séance de TP ca sera RMI comme example pris par le prof enfin bon voila je lis ce toto :http://jmdoudoux.developpez.com/cour...a/chap-rmi.php
    depuis ce matin apres j'ai voulu téster pour voir un peu comment marche tous ce la

    bon avant de vous exposer mon probleme je vais vous afficher mes classes:

    interface Information
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    package test_rmi;
     
    import java.rmi.*;
     
    public interface Information extends Remote {
     
       public String getInformation() throws RemoteException;
     
    }
    classe TestRMIServer
    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
     
    package test_rmi;
     
    import java.rmi.*;
     
    import java.rmi.server.*;
     
    public class TestRMIServer extends UnicastRemoteObject implements Information {
     
       protected TestRMIServer() throws RemoteException {
          super();
       }
     
       public String getInformation()throws RemoteException {
          return "bonjour";
       }
     
    }
    classe TestServer
    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
     
    package test_rmi;
     
    import java.rmi.Naming;
     
    public class TestServeur {
     
    	public static void main(String[] args) {
     
    		   try {
     
    			  java.rmi.registry.LocateRegistry.createRegistry(1099);
     
    		      System.out.println("Mise en place du Security Manager ...");
    		      System.setSecurityManager(new java.rmi.RMISecurityManager());
     
    		      TestRMIServer testRMIServer = new TestRMIServer();
     
    		      System.out.println("Enregistrement du serveur");
     
    		      Naming.rebind("rmi://"+java.net.InetAddress.getLocalHost()+
    		         "/TestRMI",testRMIServer);
     
    		      // Naming.rebind(";rmi://localhost/TestRMI", testRMIServer);
     
     
    		      System.out.println("Serveur lancé");
     
    		   } catch (Exception e) {
    		      System.out.println("Exception capturée: " + e.getMessage());
    		   }
     
    		}
     
    }
    classe TestClient
    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
     
    package test_rmi;
     
    import java.rmi.Naming;
    import java.rmi.RMISecurityManager;
    import java.rmi.Remote;
     
    public class TestClient {
     
    	public static void main(String[] args) {
     
    		   System.setSecurityManager(new RMISecurityManager());
     
    		   try {
     
    		      Remote r = Naming.lookup("rmi://vaio/127.0.0.1/TestRMI");
     
    		      if (r instanceof Information) {
    		         String s = ((Information) r).getInformation();
    		         System.out.println("chaine renvoyée = " + s);
    		      }
     
    		   } catch (Exception e) {
    		   }
    		}
     
    }
    Le probleme est que quand j'execute la class TestClient l'exception ne capture pas le message "bonjour" de la classe TestRMIServeur et en plus rien ne s'affiche sur la console

    Pouvez vous m'aider svp ?

    Cordialement, spider17

  2. #2
    Membre Expert
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Par défaut
    afficher l'exception du client t'aiderais sans doute
    pas de rmiregistry actif?

  3. #3
    Membre confirmé
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Avril 2011
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2011
    Messages : 139
    Par défaut
    salut

    j'ai pas compris ce que tu veux dire par la ?

  4. #4
    Membre chevronné Avatar de hariman
    Homme Profil pro
    Développeur Java, Android
    Inscrit en
    Janvier 2008
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : Développeur Java, Android
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2008
    Messages : 200
    Par défaut
    Salut !

    Je pense que ton problème se situe sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Remote r = Naming.lookup("rmi://vaio/127.0.0.1/TestRMI");
    Les instructions présentes dans "if (r instanceof Information)" ne sont pas exécutés si tu n'as pas obtenu une référence sur l'objet distant.

    Est-ce que t'es sûr que c'est le bon url ? Car je vois que tu viens de faire un copie-coller à partir du tuto.

    Complète le bloc catch pour afficher le message d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    try {
      Remote r = Naming.lookup("rmi://vaio/127.0.0.1/TestRMI");
      if (r instanceof Information) {
        String s = ((Information) r).getInformation();
        System.out.println("chaine renvoyée = " + s);
      }
    } catch (Exception e) {
      System.out.println(e.getMessage());
    }
    Si tu utilises une seule machine, l'url doit être, je croix, de la forme "rmi://127.0.0.1/TestRMI"

  5. #5
    Membre confirmé
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Avril 2011
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2011
    Messages : 139
    Par défaut
    Ca marche pas avec l'url que tu m'a donné !

    mais stp je veux juste savoir un truc quand j'execute la calss TestClient normalement elle doit affichée le messahe "bonjour" n'est ce pas ?

  6. #6
    Membre émérite

    Profil pro
    Technicien
    Inscrit en
    Février 2009
    Messages
    338
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Février 2009
    Messages : 338
    Par défaut
    Bonjour,

    Je te confirme que le client doit afficher le message : "chaine renvoyée = bonjour".

    Dans le fichier TestClient.java, Je te conseille de revoir le Naming.lookup en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                Remote r = Naming.lookup("rmi://"
                        + java.net.InetAddress.getLocalHost()
                        + "/TestRMI");
    Le "vaio" indiqué dans le cours de jmdoudoux est peut être rester en dur par erreur .

    Et comme l'a précisé professeur shadoko, affiche l'exception (dans le code que tu as fourni, s'il y a une exception qui se produit, tu ne l'as voit jamais).

    Benoit

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

Discussions similaires

  1. Problème avec RMI sur différents réseaux
    Par Skip57437 dans le forum Entrée/Sortie
    Réponses: 0
    Dernier message: 11/02/2015, 15h31
  2. Problème avec RMI
    Par marwen109 dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 25/01/2012, 22h43
  3. probléme avec Rmi besoin d'aide
    Par seifdev dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 27/12/2009, 06h27
  4. Problème avec RMI connection avec JBOSS
    Par nakata77 dans le forum Wildfly/JBoss
    Réponses: 1
    Dernier message: 29/01/2007, 23h25
  5. [RMI] Problème de RMI avec TomCAT 5.5 et jre1.5.0_06
    Par YokoSop dans le forum Tomcat et TomEE
    Réponses: 4
    Dernier message: 08/03/2006, 09h57

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