2010-10-14 14 views
6

मेरे पास एक रीस्टेसी सेवा है जो सर्वर साइड त्रुटि होने पर HTTP 500 देता है। त्रुटि के बारे में अधिक जानकारी देने के लिए मैं एक HTTP को 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> 

मैं एक ग्राहक है की तरह कुछ (वसंत MVC 3.0 बाकी ग्राहक) और मैं HTTP 500 पर कब्जा तथा प्रतिक्रिया का ढाँचा पढ़ सकते हैं और deserialize करने के लिए कोशिश कर रहा हूँ लग रहा है myErrorEnvelope ऑब्जेक्ट। मैं पहले एक पकड़ RestClientException पकड़ता हूं और यह सही ढंग से मुझे बताता है कि HTTP 500 प्रतिक्रिया थी लेकिन फिर प्रतिक्रिया का शरीर प्राप्त करने का कोई तरीका नहीं है। क्या यह ऐसा कुछ है जिसे मैं करने में सक्षम नहीं हूं? क्या मुझे त्रुटि ऑब्जेक्ट को HTTP 200 प्रतिक्रिया के शरीर के रूप में वापस करना है? मैं वास्तव में एक शरीर के साथ HTTP 500 वापस कर दूंगा।

धन्यवाद।

उत्तर

7

आप सही काम करने की कोशिश कर रहे हैं। एक ढांचा जो आपको गैर-2xx प्रतिक्रिया का पेलोड नहीं देता है, वह टूट जाता है।

संबंधित मुद्दे