Bonjour, ça va être mon 1er web service donc j'aimerai partir sur de bonnes bases:D
je dois développer un web service qui permet de retourner une liste de candidats répondant à des critères:
J'ai 3 entity: Candidate Education et Experience
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 @Entity @Table(name="candidate") public class Candidate implements Comparable, Serializable { @Id @GeneratedValue(strategy = GenerationType.SEQUENCE) private Long candidateid; @OneToOne(fetch = FetchType.EAGER) @JoinColumn(name = "ciid") private Contact_info contact_info = new Contact_info(); @OrderBy("lastname ASC") private String lastname; private String firstname; private Float rate; @OneToMany(fetch = FetchType.LAZY) private List<Experience> experiences; @OneToMany(fetch = FetchType.LAZY) private List<Education> educations;
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 @Entity //@Table(name="education") public class Education implements Comparable, Serializable { @Id @GeneratedValue(strategy = GenerationType.SEQUENCE) private Long eduid; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "candidateid") private Candidate candidate = new Candidate(); @Temporal(TemporalType.DATE) private Date from_; @Temporal(TemporalType.DATE) private Date to_; private String school; private String level_; private String description
tout ceci dans un projet JavaEE -> sociétéCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 @Entity //@Table(name="experience") public class Experience implements Serializable, Comparable { @Id @GeneratedValue(strategy = GenerationType.SEQUENCE) private Long expid; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "candidateid") private Candidate candidate = new Candidate(); @Temporal(TemporalType.DATE) private Date from_; @Temporal(TemporalType.DATE) private Date to_; private String function; private String employer; private String description;
De l'autre côté un employeur qui demande à la société une liste de candidats répondant à certains critères (exemple candidates ayant fréquenté tel établissement, avec tel niveau, ayant exercé telle fonction ).
Je l'ai développé sur la partie ejb de mon projet comme ceci
je le déploie, je le teste jusque là ça l'air de fonctionner mais je pense avoir raté quelque chose car je n'arrive pas à le tester, car je n'ai pas d'objets, pouvez vous m'aider à y voir plus clair:calim2: peut on mettre en paramètre des objets?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
35 */ @WebService() @Stateless() public class CandidateWSList { /** * Web service operation */ @WebMethod(operationName = "CandidateList") public ArrayList CandidateList(@WebParam(name = "education") Education education, @WebParam(name = "experience") Experience experience) { ArrayList<Candidate> candidates = new ArrayList<Candidate>(); Candidate candidate = new Candidate(); System.out.print("Entrer l'école"); String school = Clavier.lireString(); System.out.print("Entrer le niveau"); String level = Clavier.lireString(); System.out.print("Entrer la fonction"); String function_ = Clavier.lireString(); for (int i = 0; i < candidates.size(); i++) { if (education.getSchool().equalsIgnoreCase(school) && education.getLevel().equalsIgnoreCase(level) && experience.getFunction().equalsIgnoreCase(function_)) { candidate = education.getCandidate(); candidates.add(candidate); } } return candidates; } }
merci