2014-12-31 12 views
7

मैं वसंत बादल ढांचे के साथ काम कर रहे एक साधारण कतार हैंडलर को प्राप्त करने की कोशिश कर रहा हूं। मैंने सफलतापूर्वक संदेश हैंडलर को कतार मतदान कर लिया है, हालांकि। जिस समस्या को मैं देख रहा हूं वह यह है कि जब मैं कतार में एक संदेश पोस्ट करता हूं, तो मेरा हैंडलर आवश्यक जावा ऑब्जेक्ट में पेलोड को उतारने में असफल रहा है।वसंत बादल - एसक्यूएस

@MessageMapping("MyMessageQueue") 
@SuppressWarnings("UnusedDeclaration") 
public void handleCreateListingMessage(@Headers Map<String, String> headers, MyMessage message) { 
    //do something with the MyMessage object 
} 

त्रुटि मैं हो रही है

No converter found to convert to class MyMessage 

है मैं इसे समझने के रूप में, @MessageMapping एक MyMessage वस्तु में मेरी JSON पेलोड unmarshall को जैक्सन का उपयोग करना चाहिए। हालांकि इसकी शिकायत है कि यह एक कनवर्टर नहीं मिल सकता है।

क्या कोई इस पर आ गया है?

मैं वसंत बादल के 1.0.0.BUILD-SNAPSHOT संस्करण का उपयोग कर रहा हूं।

उत्तर

11

जैक्सन का उपयोग केवल तभी किया जाता है जब contentType शीर्षलेख SQS संदेश पर application/json मान के साथ सेट किया गया हो। अन्यथा कनवर्टर्स को पता नहीं है कि संदेश के पेलोड में किस प्रकार की सामग्री निहित है और सही कनवर्टर का चयन नहीं किया जा सकता है।

यदि आप का उपयोग reference application में करते हैं, तो contentType हेडर स्वचालित रूप से सेट हो जाएगा।

+0

इसे साफ़ करने के लिए बहुत बहुत धन्यवाद। मैं पुष्टि कर सकता हूं कि MyMessage ऑब्जेक्ट अब सामग्री टाइप करने के बाद अपेक्षित के रूप में बनाया जा रहा है। – Slihp

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