2010-10-14 8 views
6

J'ai un service RESTEasy qui renvoie un HTTP 500 lorsqu'une erreur côté serveur se produit. Je parviens à joindre un corps à la réponse HTTP afin de donner plus de détails sur l'erreur. Donc, la réponse qui sort du service ressemble à quelque chose comme çaRéponse HTTP 500 avec le corps?

HTTP/1.1 500 Internal Server Error 
Server: Apache-Coyote/1.1 
Content-Type: application/xml;charset=ISO-8859-1 
Content-Language: en-US 
Content-Length: 3251 
Date: Thu, 14 Oct 2010 23:22:49 GMT 
Connection: close 

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><myErrorEnvelope><internalCode>123</internalCode><description>error details</description></myErrorEnvelope> 

J'ai un client (Spring MVC 3.0 client REST) ​​et je suis en train de capturer HTTP 500 et lire le corps de la réponse et désérialiser le myErrorEnvelope objet. J'ai d'abord attraper une capture RestClientException et il me dit correctement qu'il y avait une réponse HTTP 500 mais il semble qu'il n'y ait aucun moyen d'obtenir le corps de la réponse. Est-ce quelque chose que je ne suis pas supposé pouvoir faire? Suis-je censé renvoyer l'objet d'erreur comme le corps d'une réponse HTTP 200 à la place? Je préfère vraiment renvoyer HTTP 500 avec un corps.

Merci.

Répondre

7

Vous essayez de faire la bonne chose. Un framework qui ne vous permet pas d'obtenir la charge utile d'une réponse non-2xx est simplement cassé.

Questions connexes