Bonjour,

J’ai dans mon appli un contrôleur (dans un projet -war) qui utilise un EJB
Dans ce contrôleur je veux utiliser le constructeur de cette classe, mais dès que je l'implémente rein ne marche: j'ai un message d'erreur dans ma page web.

Mon code du contrôleur :
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
 
package dz.elit.sirh.controller;
 
import dz.elit.sirh.model.entity.Daira;
import dz.elit.sirh.model.entity.Wilaya;
import dz.elit.sirh.services.DairaSessionBeanLocal;
import dz.elit.sirh.services.WilayaSessionBeanLocal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.ListIterator;
import java.util.Map;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
 
 
public class WilayaController {
 
    @EJB
    private DairaSessionBeanLocal dairaSessionBean; 
 
    @EJB
    private WilayaSessionBeanLocal wilayaSessionBean;
    private Wilaya wilaya;  //Accer a l'entité
    private Daira daira;    //Accer a l'entité
 
/**
* Remarque des que je fait appel a une méthode (sa ne marche pas !!)
**/
/* ************Ici le constructeur qui me cosse des Problème********* */
    /** Creates a new instance of WilayaController */
    public WilayaController()
    {
        //this.listWilayas = new ArrayList<Wilaya>(); //this.wilaya = new Wilaya();
        this.transListToMap(); //la méthode que je veux faire appel
    }
/* ****************************************************** */
 
 
    /**
     * utiliser dans l'IHM pour affichage des wilaya Daira
     */
    private List<Daira> dairas;         //liste des dairas (a l'insertion d'une wilaya)
    private boolean setVisible = false;
 
    private List<Wilaya> listWilayas;   //Affichage All wilaya
    private List<Daira> listDairas;     //Affichage All Daira
 
    public List<Daira> getListDairas() {
        return listDairas;
    }
 
    public List<Wilaya> getListWilayas() {
        return listWilayas;
    }
 
   /**
     * utiliser dans l'IHM pour List deroulant Dynamique des wilaya Daira
     */
    private String wilayaStr;  //Représente la liste
    private String dairaStr;  
    private Map<String,String> wilayasStr = new HashMap<String, String>();  //structure de la liste
    private Map<String,Map<String,String>> dairasStrsData = new HashMap<String, Map<String,String>>();  
    private Map<String,String> dairasStr = new HashMap<String, String>();
 
 
    private void transListToMap(){
        List<Wilaya> wilayas = this.getAllWialya();
        ListIterator<Wilaya> wils = wilayas.listIterator();
        Wilaya wil;
        //mettre das map (ce que j'ai besoin)
        while(wils.hasNext()) {
         wil = wils.next();
         this.wilayasStr.put(wil.getLibeller(), wil.getLibeller()); //converiter en string (pas bon gardés m Table)
 
             //recup la liste de daira
             ListIterator<Daira> dais = wil.getDairas().listIterator();
             Daira dai; 
            //mettre das map (ce que j'ai besoin)
            while(dais.hasNext()) {
                dai = dais.next();
                this.dairasStr.put(dai.getLibeller(), dai.getLibeller()); //id = dai.getId().toString()
            } //Solution [le débugeur...]
 
         //Affectation a "dairasStrsData"   
         dairasStrsData.put(wil.getId().toString(), this.dairasStr);
         this.dairasStr = null;
        } 
 
    }
 
 
    public void handleCityChange() {  
        if(wilayaStr !=null && !wilayaStr.equals(""))  
            dairasStr = dairasStrsData.get(wilayaStr);  
        else  
            dairasStr = new HashMap<String, String>();  
    }  
 
    public void displayLocation() {  
        FacesMessage msg = new FacesMessage("Selected", "City:" + wilayaStr + ", Suburb: " + dairaStr);  
 
        FacesContext.getCurrentInstance().addMessage(null, msg);  
    } 
 
 
    public void doCreate() {
        wilaya = wilayaSessionBean.create(wilaya);
        setVisible = true;
    }
 
    public void doUpdate() {
        wilaya.setDairas(dairas);
        wilayaSessionBean.merge(wilaya);
    }
 
    public void doInsertDaira() {
        dairas.add(daira);
        daira = null;
    }
 
    public void doInit() {
        wilaya = null; daira = null;
        dairas = null; 
        setVisible = false;
        this.transListToMap();
    }
 
    public List<Wilaya> getAllWialya() {
        this.listWilayas = wilayaSessionBean.findAll();
        return this.listWilayas;
    }
 
    public List<Daira> getAllDaira() {
        this.listDairas = dairaSessionBean.findAll();
        return this.listDairas;
    }
 
     public List<Daira> findDairaToWilaya() {
 
         this.dairas = wilayaSessionBean.findDairaToWilaya(16);
         return this.dairas;
    }   
 
 
    public Wilaya SetUpdat() {
        wilayaSessionBean.merge(this.wilaya);
        return this.wilaya;
    }
 
 /* ****************Setteur and Getteur********************** */
    public Wilaya getWilaya() {
        if(wilaya==null) wilaya=new Wilaya();
        return wilaya;
    }
 
    public void setWilaya(Wilaya wilaya) {
        if (wilaya == null) wilaya = new Wilaya();
        this.wilaya = wilaya;
    }
 
   public Daira getDaira() {
        if (daira == null) daira = new Daira();
        return daira;
    }
 
    public void setDaira(Daira daira) {
        if (daira == null) daira = new Daira();
        this.daira = daira;
    }
 
    public List<Daira> getDairas() {
        if (dairas == null) dairas = new ArrayList<Daira>();
        return dairas;
    }
 
    public void setDairas(List<Daira> dairas) {
        if (dairas == null) dairas = new ArrayList<Daira>();
        this.dairas = dairas;
    }
 
    public boolean isSetVisible() {
        return setVisible;
    }
 
    public void setSetVisible(boolean setVisible) {
        this.setVisible = setVisible;
    }
 
    public WilayaSessionBeanLocal getWilayaSessionBean() {
        return wilayaSessionBean;
    }
 
    public void setWilayaSessionBean(WilayaSessionBeanLocal wilayaSessionBean) {
        this.wilayaSessionBean = wilayaSessionBean;
    }
 
    public DairaSessionBeanLocal getDairaSessionBean() {
        return dairaSessionBean;
    }
 
    public void setDairaSessionBean(DairaSessionBeanLocal dairaSessionBean) {
        this.dairaSessionBean = dairaSessionBean;
    }
 
    public String getDairaStr() {
        return dairaStr;
    }
 
    public void setDairaStr(String dairaStr) {
        this.dairaStr = dairaStr;
    }
 
    public Map<String, String> getDairasStr() {
        return dairasStr;
    }
 
    public void setDairasStr(Map<String, String> dairasStr) {
        this.dairasStr = dairasStr;
    }
 
    public Map<String, Map<String, String>> getDairasStrsData() {
        return dairasStrsData;
    }
 
    public void setDairasStrsData(Map<String, Map<String, String>> dairasStrsData) {
        this.dairasStrsData = dairasStrsData;
    }
 
    public String getWilayaStr() {
        return wilayaStr;
    }
 
    public void setWilayaStr(String wilayaStr) {
        this.wilayaStr = wilayaStr;
    }
 
    public Map<String, String> getWilayasStr() {
        return wilayasStr;
    }
 
    public void setWilayasStr(Map<String, String> wilayasStr) {
        this.wilayasStr = wilayasStr;
    }    
/* *************************************************** */
}
1- je voudrais savoir s'il y a une contrainte en particulier quand en utiliser un @EJB avec un SessionBean, puisqu'il a une particularité il n'est jamais instancier explicitement (il doit se passer des choses dans ce constructeur) ?

2- Sinon comment je peux contournés ce là (une façon de faire appel a ma méthode this.transListToMap()) comment si elle est dans le constructeur ?

Merci de d'avance de votre aide