Bonjour,

j'ai deux classes "client" et "secteur" qui sont définit comme suit :

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
 
package ma.it.model;
 
// Generated 4 juin 2012 10:20:08 by Hibernate Tools 3.4.0.CR1
 
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
 
import javax.persistence.CascadeType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
 
/**
 * Client generated by hbm2java
 */
@Entity
@Table(name = "client", catalog = "bdd_itrekrute")
public class Client implements java.io.Serializable {
 
	private Integer idMembre;
	private String nom;
	private String prenom;
	private Secteur secteur;
 
 
	public Client() {
 
	}
 
 
	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "idMembre", unique = true, nullable = false)
	public Integer getIdMembre() {
		return this.idMembre;
	}
 
	public void setIdMembre(Integer idMembre) {
		this.idMembre = idMembre;
	}
 
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "idSecteur", nullable = false)
	public Secteur getSecteur() {
		return this.secteur;
	}
 
	public void setSecteur(Secteur secteur) {
		this.secteur = secteur;
	}
 
 
	@Column(name = "nom", length = 254)
	public String getNom() {
		return this.nom;
	}
 
	public void setNom(String nom) {
		this.nom = nom;
	}
 
	@Column(name = "prenom", length = 254)
	public String getPrenom() {
		return this.prenom;
	}
 
	public void setPrenom(String prenom) {
		this.prenom = prenom;
	}
 
 
 
}
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
 
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
 
/**
 * Secteur generated by hbm2java
 */
@Entity
@Table(name = "secteur", catalog = "bdd_itrekrute")
public class Secteur implements java.io.Serializable {
 
	private Integer idSecteur;
	private String designation;
	private Set<Client> clients = new HashSet<Client>(0);
 
	public Secteur() {
	}
 
 
	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "idSecteur", unique = true, nullable = false)
	public Integer getIdSecteur() {
		return this.idSecteur;
	}
 
	public void setIdSecteur(Integer idSecteur) {
		this.idSecteur = idSecteur;
	}
 
	@Column(name = "designation", length = 254)
	public String getDesignation() {
		return this.designation;
	}
 
	public void setDesignation(String designation) {
		this.designation = designation;
	}
 
	@OneToMany(fetch = FetchType.LAZY, mappedBy = "secteur")
	public Set<Client> getClients() {
		return this.clients;
	}
 
	public void setClients(Set<Client> clients) {
		this.clients = clients;
	}
 
}
je veux lors de la création d'un nouveau client préciser son secteur d'activité c'est pourquoi j'ai ajouté un combobox à mon formulaire d'ajout:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
<h:selectOneMenu value="#{ClientBean.currentClient.secteur}">
   <f:selectItems value="#{SecteurBean.secteurList}"  />
</h:selectOneMenu>
mais la liste des secteurs ne se charge pas , et je me trouve face à cette exception :

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
 
4 juin 2012 16:00:29 com.sun.faces.lifecycle.LifecycleImpl phase
ATTENTION: executePhase(RENDER_RESPONSE 6,com.sun.faces.context.FacesContextImpl@163de4e) threw exception
java.lang.IllegalArgumentException: "Argument Error: An option for component j_id_jsp_662708871_102 was not an instance of javax.faces.model.SelectItem.  Type found: java.util.ArrayList.
	at com.sun.faces.renderkit.RenderKitUtils.getSelectItems(RenderKitUtils.java:321)
	at com.sun.faces.renderkit.html_basic.MenuRenderer.getOptionNumber(MenuRenderer.java:506)
	at com.sun.faces.renderkit.html_basic.MenuRenderer.renderSelect(MenuRenderer.java:482)
	at com.sun.faces.renderkit.html_basic.MenuRenderer.encodeEnd(MenuRenderer.java:447)
	at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:847)
	at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:241)
	at com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:153)
	at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:827)
	at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:233)
	at com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:270)
	at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:827)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:883)
	at javax.faces.render.Renderer.encodeChildren(Renderer.java:137)
....
Pourriez vous m'aider svpp