स्प्रिंग JSON अनुरोध रिटर्निंग 406 (स्वीकार्य नहीं)
स्प्रिंग एमवीसी नियंत्रक को JSON अनुरोध भेजने का प्रयास करते समय, कुछ उपयोगकर्ताओं को एक समस्या का सामना करना पड़ता है "406 स्वीकार्य नहीं" त्रुटि। यह समस्या अनुरोधित सामग्री प्रकार ("एप्लिकेशन/जेसन") और नियंत्रक की प्रतिक्रिया क्षमता के बीच एक बेमेल से उत्पन्न होती है।
स्प्रिंग एमवीसी में, नियंत्रक विधि को यह इंगित करने के लिए "@ResponseBody" के साथ एनोटेट किया गया है रिटर्न मान को HTTP प्रतिक्रिया निकाय में JSON के रूप में लिखा जाना चाहिए। हालाँकि, यदि उचित HTTPMessageConverter एप्लिकेशन संदर्भ में पंजीकृत नहीं है, तो स्प्रिंग रिटर्न मान को अनुरोधित प्रारूप में परिवर्तित करने में असमर्थ होगा।
इस त्रुटि का एक सामान्य कारण एप्लिकेशन में जैक्सन लाइब्रेरीज़ की अनुपस्थिति है क्लासपाथ. जैक्सन लाइब्रेरी HTTPMessageConverter प्रदान करती है जो जावा ऑब्जेक्ट को JSON में परिवर्तित करने और इसके विपरीत के लिए जिम्मेदार है।
समस्या को हल करने के लिए, इन चरणों का पालन करें:
सुनिश्चित करें कि निम्नलिखित जैक्सन लाइब्रेरी एप्लिकेशन क्लासपाथ में शामिल हैं:
यदि आप स्प्रिंग 3.0 या उसके बाद का उपयोग कर रहे हैं, तो एनोटेशन-संचालित एमवीसी कॉन्फ़िगरेशन को सक्षम करने के लिए स्प्रिंग-सर्वलेट.xml कॉन्फ़िगरेशन फ़ाइल में निम्न पंक्ति जोड़ें:
इन चरणों को लागू करने से, HTTPMessageConverter पंजीकृत हो जाएगा, और स्प्रिंग नियंत्रक के रिटर्न मान को JSON में परिवर्तित करने में सक्षम होगा जैसा कि अपेक्षित था .
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3