Bonjour,

je sais que ce post date mais j'ai exactement le même problème.

J'ai une classe IndividualTrainingPlan qui contient des "Trainee". Lorsque je recupere me IndividualTrainingPlan j'ai une erreur :

TypeError: Error #1034: Echec de la contrainte de type*: conversion de Object@23cc1b79 en vo.TraineeVo impossible

Pourtant, lorsque je recupere ma liste de Trainee, les objets sont bien typés en "Trainee"

voici mon code

Classe IndividualTrainingPlan et Trainee coté Flex
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
package vo
{
	import mx.collections.ArrayCollection;
 
	[RemoteClass(alias="vo.IndividualTrainingPlan")]
	[Bindable]
	public class IndividualTrainingPlanVo
	{
		public var id:int;
		public var trainee:TraineeVo;
		public var competence:CompetenceVo;
		public var assessments:ArrayCollection;
		public function IndividualTrainingPlanVo()
		{
		}
	}
}
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
package vo
{	
	[Bindable]
	[RemoteClass(alias='vo.Trainee')]
	public class TraineeVo
	{
		public var id:int;
		public var trainer:UserVo;
		public var jobProfile:JobProfileVo;
		public var firstName:String;
		public var lastName:String;
		public var birthDate:Date;
		public var photoPath:String;
		public function TraineeVo()
		{
		}
 
		public function get jobProfileName():String{
			return jobProfile.name;
		}
	}
}
Classe IndividualTrainingPlan et Trainee coté Java

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
public class IndividualTrainingPlan  implements java.io.Serializable {
 
 
     /**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private Integer id;
     private Trainee trainee;
     private Competence competence;
     private Set<Assessment> assessments = new HashSet<Assessment>(0);
     /*private Set<TrainingPlanItem> trainingPlanItems = new HashSet<TrainingPlanItem>(0);*/
 
    public IndividualTrainingPlan() {
    }
 
 
    public IndividualTrainingPlan(Trainee trainee, Competence competence) {
        this.trainee = trainee;
        this.competence = competence;
    }
 
    public Integer getId() {
        return this.id;
    }
 
    public void setId(Integer Id) {
        this.id = Id;
    }
    public Trainee getTrainee() {
        return this.trainee;
    }
 
    public void setTrainee(Trainee trainee) {
        this.trainee = trainee;
    }
    public Competence getCompetence() {
        return this.competence;
    }
 
    public void setCompetence(Competence competence) {
        this.competence = competence;
    }
 
    public Set<Assessment> getAssessments() {
        return this.assessments;
    }
 
    public void setAssessments(Set<Assessment> assessments) {
        this.assessments = assessments;
    }
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
public class Trainee  implements java.io.Serializable/*,IAnnotatedProxy */{
 
 
     /**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private Integer id;
     private User trainer;
     private JobProfile jobProfile;
     private String firstName;
     private String lastName;
     private Date birthDate;
     private String photoPath;
 
 
    public Trainee() {
    }
 
 
    public Trainee(String FirstName, String LastName) {
        this.firstName = FirstName;
        this.lastName = LastName;
    }
    public Trainee(User user, JobProfile jobprofile, String FirstName, String LastName,Date birthDate, String PhotoPath) {
       this.trainer = user;
       this.jobProfile = jobprofile;
       this.firstName = FirstName;
       this.lastName = LastName;
       this.birthDate = birthDate;
       this.photoPath = PhotoPath;
    }
 
    public Integer getId() {
        return this.id;
    }
 
    public void setId(Integer Id) {
        this.id = Id;
    }
 
    public User getTrainer() {
        return this.trainer;
    }
 
    public void setTrainer(User user) {
        this.trainer = user;
    }
    public JobProfile getJobProfile() {
        return this.jobProfile;
    }
 
    public void setJobProfile(JobProfile jobprofile) {
        this.jobProfile = jobprofile;
    }
    public String getFirstName() {
        return this.firstName;
    }
 
    public void setFirstName(String FirstName) {
        this.firstName = FirstName;
    }
    public String getLastName() {
        return this.lastName;
    }
 
    public void setLastName(String LastName) {
        this.lastName = LastName;
    }
 
    public Date getBirthDate() {
		return birthDate;
	}
 
	public void setBirthDate(Date birthDate) {
		this.birthDate = birthDate;
	}
 
 
	public String getPhotoPath() {
        return this.photoPath;
    }
 
    public void setPhotoPath(String PhotoPath) {
        this.photoPath = PhotoPath;
    }

D'autre part, j'ai l'impression qu'il y a un problème de cache au niveau blazeDs. Lorsque le serveur tomcat blazeds est lancé, je lance mon projet via flex builder puis je recupere par exemple ma liste de trainee. Ensuite, j'ajoute un trainee dans la base de donnée. Je ferme mon application, je la relance depuis flex builder et quand je veux recupérer mes trainee, il me renvoie les anciennes données sans le nouveau trainee..
Y a t'il un moyen de spécifier à blazeds qu'il doit refaire la requete et pas utiliser son cache ?

Merci