2010-09-24 12 views
4

Puis-je modifier la valeur du paramètre d'annotation @Produces dans mes services RESTEasy?
La tâche qui m'a été confiée consiste à intégrer des rapports à plusieurs formats dans un système de rapports existant. La modification dynamique du paramètre d'annotation @Produces m'aidera beaucoup.
Merci d'avance!Modifiez dynamiquement le type de retour de service RESTEasy

Répondre

6

Faites votre méthode retourne un objet Response et essayer quelque chose comme ça;

int status = 200; 
String type = MediaType.APPLICATION_XML; 
String response = "<hello>world</hello>"; 
return Response.status(status).type(type).entity(response).build(); 

Je pense que le type dans la réponse écrasera ce que vous annotés, mais je l'ai pas testé.

+0

Yeap ... il remplace le type annoté. – Andrew

+0

Merci! cette réponse résout mon problème! :) – sabadow

3

Vous pouvez spécifier plusieurs entrées dans @Produces. Votre demande devrait mentionner quel format (en tant que type mime) voulez-vous en tant que résultat.

Exemple:

@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) 
+0

Merci Nanda! Semble être une bonne solution ... que diriez-vous de PDF ici ?? – Andrew

+0

Je ne peux pas le faire fonctionner avec PDF ... des idées? – Andrew