17

我有一个 RESTEasy 服务,它在发生服务器端错误时返回 HTTP 500。我设法将正文附加到 HTTP 响应,以便提供有关错误的更多详细信息。所以从服务中出来的响应看起来像这样

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对象。我首先捕获了一个 catch RestClientException,它正确地告诉我有一个 HTTP 500 响应,但是似乎没有办法获得响应的正文。这是我不应该做的事情吗?我是否应该将错误对象作为 HTTP 200 响应的主体返回?我真的宁愿返回带有正文的 HTTP 500。

谢谢。

4

1 回答 1

12

你正在尝试做正确的事。一个不允许您获取非 2xx 响应的有效负载的框架被破坏了。

于 2010-10-15T07:10:31.250 回答