2010-10-14 14 views
6

Possiedo un servizio RESTEasy che restituisce un HTTP 500 quando si verifica un errore lato server. Riesco a collegare un corpo alla risposta HTTP per fornire maggiori dettagli sull'errore. Quindi la risposta che viene fuori del servizio simile a questaRisposta HTTP 500 con il corpo?

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> 

Ho un cliente (Spring MVC cliente 3.0 REST) ​​e sto cercando di catturare l'HTTP 500 e leggere il corpo della risposta e deserializzare il oggetto MyErrorEnvelope. Per prima cosa prendo uno spunto RestClientException e correttamente mi dice che c'era una risposta HTTP 500 ma poi non sembra esserci alcun modo per ottenere il corpo della risposta. È qualcosa che non dovrei essere in grado di fare? Devo restituire l'oggetto error come corpo di una risposta HTTP 200, invece? Mi piacerebbe davvero restituire HTTP 500 con un corpo.

Grazie.

risposta

7

Stai cercando di fare la cosa giusta. Un framework che non ti permette di ottenere il payload di una risposta non-2xx è semplicemente rotto.

Problemi correlati