मेरे पास स्प्रिंग 3.1.0.RELEASE का उपयोग कर स्प्रिंग रेस्ट सेवा है। यहाँ प्रश्न में सेवा कॉल के लिए प्रासंगिक कोड है:मेरी स्प्रिंग सेवा क्लाइंट द्वारा अनुरोध किए गए किसी भी सामग्री प्रकार को वापस क्यों कर रही है?
@RequestMapping(value="/{var1}", method=RequestMethod.GET, produces="application/json")
@ResponseBody
public String getSomeStuff(@PathVariable final String var1) {
return myJsonString;
}
यदि मैं यह निम्नलिखित कर्ल आदेश का उपयोग कर कहते हैं, यह खुशी से मुझे आवेदन की एक सामग्री प्रकार के साथ अपने json स्ट्रिंग रिटर्न/xml जबकि मैं एक उम्मीद होती है 406 वसंत के आधार पर 3.1 डॉक्स:
curl -v -H "Accept: application/xml" http://localhost:8080/MyServiceSite/myvalue
इस सेवा (कोई क्रमबद्धता) के लिए मेरे एप्लिकेशन में कोई अतिरिक्त विन्यास है, मैं सेवा के लिए कॉन्फ़िगर करने के लिए कोई पोस्ट-प्रोसेसिंग के साथ कच्चे json लौट रहा हूँ। मुझे यकीन है कि मैंने कुछ याद किया है, क्या कोई भी कुछ भी बता सकता है जिसे मैं याद कर सकता हूं?
संपादित करें: यहां documentation है I यह काम करने का प्रयास करते समय देख रहा था। विशेष रूप से खंड 16.3.2.5। मेरा कोड बहुत समान है सिवाय इसके कि उनका कोड ऐसा लगता है कि यह स्प्रिंग हैंडल क्रमबद्ध करने के लिए कॉन्फ़िगरेशन सेटअप मानता है। वसंत क्रमबद्धता को छोड़कर शायद उत्पादन काम नहीं करता है?
संपादित करें: मैंने प्रतिक्रिया कोड के लिए मेरी अपेक्षा बदल दी है। एक 415 इंगित करेगा कि मैं अपने अनुरोध निकाय में अनुचित सामग्री भेज रहा था जबकि 406 एक स्वीकृत हेडर रखने के लिए उचित है जो सर्वर के सामग्री प्रकार के साथ जैव नहीं करता है।
वैसे भी, मैंने इस विधि को बदल दिया है और मैसन को क्रमबद्ध करने के लिए इसके लिए कॉन्फ़िगर किया है और अब यदि मैं क्लाइंट से अमान्य सामग्री प्रकार भेजता हूं तो मुझे उचित 406 प्रतिक्रिया मिलती है। ऐसा लगता है कि विधि के आउटपुट को क्रमबद्ध नहीं किया जा सकता है जब शायद "उत्पादन" सेटिंग को नजरअंदाज कर दिया जाता है।
शायद आप संशोधित कोड और लागू कॉन्फ़िगरेशन के साथ अपने स्वयं के प्रश्न का उत्तर दे सकते हैं ताकि भविष्य में देखने वाले किसी को लाभ हो सके। – digitaljoel
अगर मैं धारावाहिकता को चालू किए बिना इसे करने का कोई तरीका नहीं समझूंगा तो मैं करूँगा। मेरे पास जो डेटा पहले से है, वह पहले से ही क्रमबद्ध है, इसलिए अगर मुझे इसे डी-सीरियलाइज़ करना था और उचित व्यवहार प्राप्त करने के लिए इसे फिर से क्रमबद्ध करना था तो यह दुर्भाग्यपूर्ण होगा। तो मैं अभी भी यह काम करने के लिए किसी अन्य तरीके की तलाश कर रहा हूं। – mockobject