Probleme nullPointerException avec rmi

Résolu
Raph382 Messages postés 14 Date d'inscription mercredi 10 octobre 2007 Statut Membre Dernière intervention 2 septembre 2015 - 28 avril 2008 à 18:02
Raph382 Messages postés 14 Date d'inscription mercredi 10 octobre 2007 Statut Membre Dernière intervention 2 septembre 2015 - 29 avril 2008 à 11:45
Bonjour, pour nos études, nous devons effectuer un framework en java en utilisant le rmi.
Ce framework est terminé mais lorsque nous voulons le tester, nous avons un message d'erreur qui dis :

Exception in thread "main" java.Lang.NullPointerException
    at client.ClientImpl.envoiObjetTous(ClientImpl.java:99)
    at test.test.main(test.java:25)

voici la methode appelée qui se trouve dans ClientImpl :

    public void envoiObjetTous(Object obj)
      {
        tunnel.envoiObjetServeurTous(nomClient, obj);        <===== ligne 99
      }
   
    ou tunnel est le nom de notre serveur (private Serveur tunnel; ... this.tunnel = (Serveur) Naming.lookup("rmi://" + serveur +                 "/Serveur");)
    et nomClient est le nom du client (String)

voici ce qui est ecrit dans le main de test :

public static void main(String[] args) throws RemoteException
    {
     
        ClientImpl moi=new ClientImpl();
        moi.connexion("moi", "127.0.0.1");
        moi.envoiObjetTous("bonjour");         <===== ligne 25
       
    }

et enfin la methode se trouvant sur le serveur appelée a la ligne 99 :

public synchronized void envoiObjetServeurTous(String nomEmetteur, Object objetMsg)
  {
  eUsers = users.elements();
   
  while (eKeys.hasMoreElements())
  {
      Client user = ( (Client) eUsers.nextElement());
      try
      {
          user.recoiObjet(nomEmetteur,objetMsg);
      }
      catch (RemoteException ex)
     {
          ex.printStackTrace();
      }
  }
}

si quelqu'un a une idée de ce qui ne va pas, je vous remercie d'avance car la on a pataugé dessus toute l'après midi!!!!!
merci beaucoup

2 réponses

cs_jojolemariole Messages postés 519 Date d'inscription mercredi 21 mars 2007 Statut Membre Dernière intervention 19 décembre 2016 25
29 avril 2008 à 09:12
Y'a pas 36 solutions, si tu as un NPE c'est que this.tunnel = (Serveur) Naming.lookup("rmi://" + serveur +  "/Serveur"); te renvoie null donc il ne trouve pas ton serveur. Je connais pas grand-chsoe en RMI donc c'est tout ce que je peux te dire. Peux-tu nous confirmer que suite au lookup, le serveur est null?
3
Raph382 Messages postés 14 Date d'inscription mercredi 10 octobre 2007 Statut Membre Dernière intervention 2 septembre 2015
29 avril 2008 à 11:45
Salut, c'est bon on a trouvé en fait c'est tout simplement que mon serveur s'apelle tunnel et non pas Serveur donc j'aurais du mettre
this.tunnel = (Serveur) Naming.lookup("rmi://" + serveur +  "/tunnel");                      

au lieu de

this.tunnel = (Serveur) Naming.lookup("rmi://" + serveur +  "/Serveur");

Merci beaucoup!!!!
3
Rejoignez-nous