Il est déclaré, mais il est null, il n'est jamais initialisé, jamais instancié ou encore injecté !!
Or, en Java, tu ne peux pas utiliser des méthodes sur un objet null.
Version imprimable
Il est déclaré, mais il est null, il n'est jamais initialisé, jamais instancié ou encore injecté !!
Or, en Java, tu ne peux pas utiliser des méthodes sur un objet null.
Bonjour ,
peut tu me montrer la ligne avec laquelle j'ai initialisé le cf dans la methode 'createuser' qui marche bien pour que je fasse la meme chose dans la methode 'createinterest' pour le 'inf' ? ou bien peut tu me montrer ou et comment l'initialiser exactement ?
(je me suis perdus)
Merci d'avance
Bon, si on regarde ton code, voici ce fait ta méthode createuser :
A aucun moment cette méthode n'utilise l'objet inf. Donc il est normal que cette méthode fonctionne !Code:
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 public String createuser() { FacesContext context = FacesContext.getCurrentInstance(); c=cf.find(login); if (c == null) { if (!password.equals (retypepassword)) { FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Login Failed password and retyped password don't match !", "The password specified is not correct."); context.addMessage(null, message); return null; } c = new Client(); Random rnd=new Random(); int code = rnd.nextInt(100000)+100000; int rightslevel =1 ; insertiondate=new Date(); c.setFirstname(firstname); c.setLastname(lastname); c.setLogin(login); c.setPassword(password); c.setMobilephone(mobilephone); c.setCompany(company); c.setTitle(title); c.setDepartment(department); c.setCams(cams); c.setRightslevel(rightslevel); c.setInsertiondate(insertiondate); c.setCode(code); cf.create(c); return "success"; } else { FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Username '" + login + "' already exists! ", "Please choose a different username."); context.addMessage(null, message); return null; } }
Salut ,
je sais que dans la methode 'createuser ' il y'a pas de 'inf' .
Ce que j'ai voulu dire c'est que la methode 'createuser' est similaire à la methode 'createinterest' . Dans la methode 'createinterest' , on a besoin de 'inf' de type 'InterestFacadeLocal' et tu m'a dit qu'on doit l'initialiser .
Dans la methode 'createuser' , on a utilisé 'cf ' de type 'ClientFacedeLocal' .
Et je l'ai pas initialisé et c'a bien marché .
Ce que j'ai voulu dire , c'est que le meme démarche (par analogie) appliqué dans chacune des deux methodes (createuser et createinterset) a aboutit a un bon résultat dans la premiere et à un erreur dans la deuxieme .
Je voi pas la différence .
Merci
Effectivement, tu as raison.
Je pense qu'il te faut regarder la réponse donnée par VirageGroup.
cf est en réalité injectée par le framework de gestion des EJB :
Il te faut donc ajouter cette annotation aussi sur cf :Code:
1
2 @EJB private ClientFacadeLocal cf;
Fais attention, pense à bien indenter ton code (Ctrl+Shift+F sur Eclipse) pour y voir plus clair...Code:
1
2
3
4
5
6
7 @EJB private ClientFacadeLocal cf; private Client c; @EJB private InterestFacadeLocal inf; private Interest i;
Salut ,
effectivement , ma faute est que j'ai mis une seule fois lede la maniére :Code:@EJB
et non plus deux fois :Code:
1
2
3
4
5
6
7
8 @EJB private ClientFacadeLocal cf; private Client c; private InterestFacadeLocal inf; private Interest i;
Code:
1
2
3
4
5
6
7
8 @EJB private ClientFacadeLocal cf; private Client c; @EJB private InterestFacadeLocal inf; private Interest i;
Merci beaucoup .