2010-10-14 120 views
6

我有一個RESTEasy服務,當發生服務器端錯誤時返回HTTP 500。我設法將一個主體附加到HTTP響應中,以便提供有關錯誤的更多詳細信息。這樣出來的服務的響應看起來是這樣的身體的HTTP 500響應?

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> 

我有一個客戶端(Spring MVC的3.0 REST客戶端),我試圖捕捉HTTP 500和讀取響應的身體和反序列化myErrorEnvelope對象。我第一次捕獲RestClientException它正確地告訴我有一個HTTP 500響應,但似乎沒有辦法得到響應的主體。這是我不應該做的事嗎?我應該將錯誤對象作爲HTTP 200響應的主體返回嗎?我真的寧願返回HTTP 500與身體。

謝謝。

回答

7

你正在嘗試做正確的事情。一個不會讓你獲得非2xx響應負載的框架就被打破了。