17

サーバー側のエラーが発生したときに HTTP 500 を返す RESTEasy サービスがあります。エラーの詳細を示すために、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 に答える