Création
d'entreprise
Posez votre question Signaler

Java.long.nullPointerException [Résolu]

marybele86 4Messages postés 30 décembre 2011Date d'inscription 1 mai 2012Dernière intervention - Dernière réponse le 30 déc. 2011 à 21:03
Bonjour,
Je suis débutante en JAVA RMI. J'essais de réaliser une application qui consiste à ajouter des abonnés à un répértoire téléphonique. Les programmes se compilent , mais dès que j'essais de lancer mon Client, Je tombe sur cette erreur java.long.nullPointerException. Voici le code Client que j'utilise :
import java.rmi.*;
import java.rmi.server.*;
public class Client_Repertoire {
public static void main(String[] args){
try{
Interface_Repertoire biss=(Interface_Repertoire)Naming.lookup("rmi://127.0.0.1:1099/MY");
Abonne F=new Abonne("mery","0613366401");
String a= biss.addAbonne(f);
System.out.println(a);
}
catch(Exception e){System.out.print(e);
}
}
}
Voici l'implémentation de la méthode addAbonne:
import java.rmi.*;
import java.rmi.server.*;
public class Object_Repertoire extends UnicastRemoteObject implements Interface_Repertoire {
Object_Repertoire()throws RemoteException
{
super();
}
int i=0,nmax=3 ;
Abonne A[]=new Abonne[3];
Abonne B;
// Ajout d'un nouvel abonné
public String addAbonne(Abonne a)throws RemoteException
{
if(i<=nmax)
{
A[i].name=a.name;
A[i].tel=a.tel;
i=i+1;
return "true";
}
else return "false";
}
SVP j'ai besoin de votre aide. C'est urgent
Lire la suite 

Java.long.nullPointerException »

Suggestions
6 réponses
Réponse
+0
moins plus
Bonjour,

Quand tu écris ceci :

A[i].name=a.name;
A[i].tel=a.tel;

A[i] n'a jamais été instancié.
Il faudrait d'abord faire A[i] = new Abonne();

Voire remplacer simplement les deux lignes par
A[i] = new Abonne(a.name, a.tel);

Xavier
marybele86- 30 déc. 2011 à 21:03
Merci Xavier. J'ai essayé avec ta méthode et ça marche :)
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

Je pense que la méthode suivante contient une erreur d'initialisation:
public String addAbonne(Abonne a)throws RemoteException
{
if(i<=nmax)
{
A[i].name=a.name;
A[i].tel=a.tel;
i=i+1;
return "true";
}
else return "false";
} 

En effet, l'instruction:
Abonne A[]=new Abonne[3];

de déclaration ne crée par trois objets mais un tableau de trois "null" et lorsque vous essayez:
A[i].name=a.name;

l'exception est provoquée parce que A[i] est "null" alors il est impossible de faire null.a = ...


Il faut réinitialiser votre tableau avec trois nouveau Abonne avant de faire les affection ou de le créer sur le champs:
public String addAbonne(Abonne a)throws RemoteException
{
if(i<=nmax)
{
A[i] = new Abonne();
A[i].name=a.name;
A[i].tel=a.tel;
i=i+1;
return "true";
}
else return "false";
} 



Bon Courage.
marybele86- 30 déc. 2011 à 21:03
Mercii Infiniment pour ton aide. C'est Bon mon application marche :)
Ajouter un commentaire
Ce document intitulé « java.long.nullPointerException » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?