IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

Impossible de récupérer les données XML avec JAX-RS


Sujet :

Servlets/JSP Java

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 88
    Points : 64
    Points
    64
    Par défaut Impossible de récupérer les données XML avec JAX-RS
    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 ):

    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.
    	}
     
    }
    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:
    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

  2. #2
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 88
    Points : 64
    Points
    64
    Par défaut
    Problème résolu: il fallait utiliser @Produces et non @Consumes...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 15
    Dernier message: 05/10/2016, 17h27
  2. Rafraichir les données XML avec l'API Google Maps
    Par olaf_le_preux dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 18/02/2010, 20h37
  3. Réponses: 5
    Dernier message: 17/11/2008, 17h29
  4. [CKEditor] Récupérer les données écrites avec fckeditor
    Par thecrazyspy dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 06/06/2008, 14h49
  5. XMLHttpRequest : Impossible de récupérer les données
    Par laurent_ifips dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 22/11/2005, 13h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo