我有一个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响应但是那时似乎没有办法得到响应的Body。这是我不应该做的事情吗?我应该将错误对象作为HTTP 200响应的主体返回吗?我真的宁愿用身体返回HTTP 500。
感谢。
答案 0 :(得分:7)
你正在努力做正确的事。一个不让你获得非2xx响应的有效负载的框架就会被破坏。