Bonjour,
Tout est plus ou moins dans le titre, voici quand même plus d'explications :
Je suis entrain de développer des services web (serveur d'application Glassfish).
Jusque là tout allait bien, je développais mes requêtes en JPA, le résultat correspondait à mes emtities crées pas de problème pour obtenir mes XML.
La, j’ai une requête plus spécifique contenant des sommes :
Ex : Select sum(primeBrute) as prime, sum(echeance) as janvier ….
Je souhaite faire remonter un «tableau » de valeur. Mon problème c'est que je n’ai aucune correspondance avec une entity, comment faire ???
Première question : est ce que cela est possible ??
En effet j’ai testé différentes solutions mais aucune n’a marché pour l’instant.
Ex :
Code :
Ps : ma requête fonctionne je l’ai testé, je bloque concrètement sur le passage des résultats de celle-ci en XML
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 @Produces({"application/xml", "application/json"}) public List<Object[]> echenacierByMois(@PathParam("guid") String guid) { List <Object[]> lst = new ArrayList<Object[]>(); String req = "Select sum(primeBrute) as prime, sum(echeance) as janvier ."; Query q = (Query) em.createQuery(req); lst = q.getResultList(); return lst; }
Erreur retournée :
Ensuite j'ai essayé de créer une classe pour entre guillemet représenter l'entity manquante.javax.ws.rs.WebApplicationException: com.sun.jersey.api.MessageException: A message body writer for Java class java.util.Vector, and Java type java.util.List<java.lang.Object[]>, and MIME media type application/xml was not found
Ma méthode est la même sauf que j'ai remplacé Object[] par le nom de ma classe.
Ma classe correspondante ressemble à cela :
Message d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 @XmlRootElement (name = "Echeancier") public class Echeancier implements Serializable{ private double echeance; //autres double + getters and setters
Je n'arrive pas à décrypter cette erreur...javax.ws.rs.WebApplicationException: javax.xml.bind.MarshalException
- with linked exception:
[com.sun.istack.SAXException2: unable to marshal type "java.math.BigDecimal" as an element because it is missing an @XmlRootElement annotation]
Avez-vous des pistes ou des idées à me transmettre si ce que je souhaite faire est possible. Je suis à cours d'idée et je bloque totalement...
Merci beaucoup
Partager