2010-10-14 78 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响应负载的框架就被打破了。