angularjs - Mapping json object to Spring object in REST service -
मेरे पास वसंत में परिभाषित एक आरईएसटी सेवा है जो निम्नानुसार है:
@RequestMapping (value = "/ बनाएं", विधि = अनुरोधित विधि। POST) @ प्रतिसाद प्रति लोक प्रतिसाद प्रतिक्रियाएं & lt; स्ट्रिंग & gt; AddArticle (@RequestBody लेख आलेख) {try {articleService.addArticle (article.getTitle (), article.getContent (), article.getTags (), article.getPublishStatus (), article.getCompanyId (), article.getCategory ()) ; नई रिस्पांसइन्टीटी & lt; स्ट्रिंग & gt; (एचटीटीपीस्टैटस। ओक) लौटें; } पकड़ (अपवाद ई) {e.printStackTrace (); न्यू रिस्पांसेंटिटी वापस & lt; स्ट्रिंग & gt; (e.getMessage (), एचटीटीपीस्टैटस। ओक); }}
और मेरे लेख को इस प्रकार परिभाषित किया गया है:
सार्वजनिक वर्ग आलेख {निजी आईआईटी; निजी स्ट्रिंग शीर्षक; निजी स्ट्रिंग सामग्री; निजी स्ट्रिंग एसएमएस कॉन्टेंट; सार्वजनिक स्ट्रिंग getSMSContent () {वापसी एसएमएस कॉन्टेंट; } सार्वजनिक शून्य सेट SmsContent (स्ट्रिंग एसएमएस कॉन्टैन्ट) {this.smsContent = smsContent; } निजी स्ट्रिंग [] टैग; निजी इंट कंपनी आईडी; निजी स्ट्रिंग श्रेणी; सार्वजनिक स्ट्रिंग getCategory () {वापसी श्रेणी; } सार्वजनिक शून्य सेट श्रेणी (स्ट्रिंग श्रेणी) {this.category = श्रेणी; } निजी बाइट प्रकाशितस्टैटस; सार्वजनिक स्ट्रिंग getTitle () {वापसी शीर्षक; } सार्वजनिक शून्य सेटटाइटल (स्ट्रिंग शीर्षक) {this.title = title; } सार्वजनिक स्ट्रिंग getContent () {वापसी सामग्री; } सार्वजनिक शून्य सेट कंटेंट (स्ट्रिंग सामग्री) {this.content = content; } सार्वजनिक स्ट्रिंग [] getTags () {वापसी टैग; } सार्वजनिक शून्य सेटटैग्स (स्ट्रिंग [] टैग) {this.tags = tags; } सार्वजनिक int getCompanyId () {वापसी कंपनी आईडी; } सार्वजनिक शून्य सेटकंपनीआईडी (इंट कंपनी आईडी) {this.companyId = companyId; } सार्वजनिक बाइट प्राप्त करें PublishStatus () {returnStatus; } सार्वजनिक शून्य सेटप्रकाशित स्थिति (बाइट प्रकाशितस्टाटस) {this.publishStatus = publishStatus; } सार्वजनिक int getId () {वापसी आईडी; } सार्वजनिक शून्य setId (int id) {this.id = id; }}
मैं इस सेवा को कोणीय का उपयोग करके कैसे कॉल करूं? मैंने निम्न कोड की कोशिश की:
फ़ंक्शन createArticle (नाम, कंपनी आईडी, शीर्षक, सामग्री, टैग, श्रेणी) {var request = $ http ({method: 'POST', url: '/ inbound / Api / article / create.json ', हेडर: {' कंटेंट-प्रकार ':' application / x-www-form-urlencoded '}, ट्रांसफॉर्मरैवेईस्ट: फंक्शन (ओबीजे) {var str = []; के लिए (var p में obj ) Str.push (encodeurIComponent (p) + "=" + encodeurIComponent (obj [p])); वापसी str.join ("& amp;";;}), डेटा: {शीर्षक: शीर्षक, सामग्री: सामग्री, टैग: टैग , कंपनी आईडी: कंपनी आईडी, श्रेणी: श्रेणी} });
मुझे त्रुटि 415 (असमर्थित मीडिया प्रकार) मिल रहा है
। किसी भी विचार?
चूंकि आप JSON के साथ काम कर रहे हैं, आपको अपने फॉर्म और हैंडलर को तदनुसार सेट करना होगा।
रीस्ट हैंडलर
@RequestMapping (value = "/ create", method = RequestMethod.POST, consumes = "application / json")
कोणीय
हेडर: {'सामग्री प्रकार': 'एप्लिकेशन / जेसन'},