Bonjour tout le monde,
Je suis en train de continuer mon projet d'étude, je souhaiterai comprendre quelque chose de très simple (peut être trop simple pour que je comprenne, eh oui ca m'arrive parfois):
Avec ce code je n'arrive pas à récupérer mes données sous le format xml (pour info j'utilise l'app "Simple REST Client" pour chrome) en indiquant l'url de mon projet:
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 package com.supinfo.notetonsta.rest; import java.util.List; import javax.ws.rs.Consumes; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.core.MediaType; import com.supinfo.notetonsta.dao.CampusDao; import com.supinfo.notetonsta.dao.jpa.JpaCampusDao; import com.supinfo.notetonsta.entity.Campus; import com.supinfo.notetonsta.util.PersistenceManager; /* * * produces = accept header * consumes = contenttype header, celui qui nous intéresse * */ @Path("/campuses") public class CampusRessource { @GET @Consumes(MediaType.APPLICATION_XML) public String getAllCampusesInXml(){ CampusDao campusDao = new JpaCampusDao(PersistenceManager.getEntityManagerFactory()); StringBuilder sb = new StringBuilder(); List<Campus> listCampuses = campusDao.getAllCampus(); sb.append("<campuses>"); sb.append("<count>" + listCampuses.size() + "</count>"); for(Campus campus: listCampuses) { sb.append("<campus>"); sb.append("<name>" + campus.getName() + "</name>"); sb.append("</campus>"); } sb.append("</campuses>"); return sb.toString(); } @GET @Consumes(MediaType.APPLICATION_JSON) //même méthode mais json public String getAllCampusesInJson()//retourne tous les campus disponibles dans la base de données { CampusDao campusDao = new JpaCampusDao(PersistenceManager.getEntityManagerFactory()); StringBuilder sb = new StringBuilder(); List<Campus> listCampuses = campusDao.getAllCampus(); sb.append("{\"campuses\":[{"); for (Campus campus : listCampuses) { sb.append("\"id\":" + "" + campus.getId() + "\"\","); sb.append("\"name\":" + "" + campus.getName() + "\"\""); } sb.append("}]}"); return sb.toString(); } @GET @Path("/{idCampus}") @Consumes(MediaType.APPLICATION_JSON) public String getCampusesByIdInJson(@PathParam("idCampus") Long campusId) { CampusDao campusDao = new JpaCampusDao(PersistenceManager.getEntityManagerFactory()); StringBuilder sb = new StringBuilder(); Campus campus = campusDao.getCampusById(campusId); sb.append("{"); sb.append("\"id\":" + "" + campus.getId() + "\"\","); sb.append("\"name\":" + "" + campus.getName() + "\"\""); sb.append("}"); return sb.toString(); } @GET @Path("/{idCampus}") @Consumes(MediaType.APPLICATION_XML)//la même méthode mais pour le xml public String getCampusByIdInXml(@PathParam("idCampus") Long campusId)//modif, campusId est le paramètre contenant l'id campus { CampusDao campusDao = new JpaCampusDao(PersistenceManager.getEntityManagerFactory());//connexion a la base de données avec instance JpaCampusDao StringBuilder sb = new StringBuilder(); //List<Campus> listCampuses = campusDao.getCampusById(campusId); Campus campus = campusDao.getCampusById(campusId);//on récupère le campus dont l'id figure dans l'url (c'est un object campus que l'on récupère) sb.append("<campuses>");//1 seul campus a retrouver sb.append("<campus>"); sb.append("<id>" + campus.getId() + "</id>");//on affiche son id sb.append("<name>" + campus.getName() + "</name>");//on affiche son nom sb.append("</campus>"); sb.append("</campuses>"); return sb.toString();//on affiche tout le flux en retournant l'objet string builder converti en string. } }
http://localhost:8080/NoteTonSTA/campuses ou en utilisant l'url http://localhost:8080/NoteTonSTA/campuses/id_existant
Quelqu'un sait pourquoi ou peut-il au moins m'indiquer les possibles sources du problème?
Merci d'avance![]()
Partager