दिलचस्प पोस्ट
क्षैतिज और लंबवत एक डीआईवी केंद्र एंड्रॉइड में सिंगलटन्स बनाम एप्लिकेशन प्रसंग? एंड्रॉइड, कैसे sqlitedatabase में एक एसक्यूएल फ़ाइल exec करने के लिए विदेशी आर्किटेक्चर मानकों समितियों के बारे में परवाह है OSX 10.7 शेर को अपग्रेड करने के बाद Postgresql की मरम्मत फ़ाइल को पीछे की ओर पढ़ें? एचटीएमएल खींचें और मोबाइल उपकरणों पर ड्रॉप एंड्रॉइड एसडीके 22 – सर्चव्यू रेंडरिंग समस्याएं कमांडलाइन तर्कों के साथ सी # से PowerShell स्क्रिप्ट निष्पादित करें एडीओ। नेट ईएफ – मॉडल के पहले दृष्टिकोण में विदेशी कुंजी संबंध को परिभाषित करने के लिए कैसे? मैं प्रोग्राम की फाइल अनुमतियों को कैसे बदलूं? वेब अनुप्रयोगों में एनिमेटेड कर्सर समर्थन? Var x = नया अर्रे () के साथ गलत क्या है; स्ट्रिंग में प्रत्येक 2 तत्व डालने का पायथनिक तरीका ojdbc14.jar बनाम ojdbc6.jar

जर्सी 415 असमर्थित मीडिया प्रकार

मैं एचटीआई त्रुटि 415 Unsupported Media Type को ठीक करने के लिए कई घंटे से कोशिश कर रहा हूं, लेकिन यह अभी भी मीडिया असमर्थित पृष्ठ दिखा रहा है। मैं पोस्टमैन में हेडर application/json जोड़ रहा हूं

यहां मेरा जावा कोड है

 package lostLove; import javax.ws.rs.Consumes; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import org.json.JSONObject; @Path("/Story") public class Story { @POST @Consumes({"application/json"}) @Produces(MediaType.APPLICATION_JSON) // @Consumes(MediaType.APPLICATION_JSON) // @Path("/Story") public JSONObject sayJsonTextHello(JSONObject inputJsonObj) throws Exception { String input = (String) inputJsonObj.get("input"); String output = "The input you sent is :" + input; JSONObject outputJsonObj = new JSONObject(); outputJsonObj.put("output", output); return outputJsonObj; } @GET @Produces(MediaType.TEXT_PLAIN) public String sayPlainTextHello() { return "hello"; } } 

यहां मेरी वेब। web.xml फाइल है web.xml

 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>LostLove</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>Jersey REST Service</servlet-name> <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> <init-param> <param-name>jersey.config.server.provider.packages</param-name> <param-value>lostLove</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Jersey REST Service</servlet-name> <url-pattern>/rest/*</url-pattern> </servlet-mapping> </web-app> 

Solutions Collecting From Web of "जर्सी 415 असमर्थित मीडिया प्रकार"

कैसे प्रतिक्रियाओं स्ट्रीम और अनुरोध स्ट्रीम से क्रमबद्ध और deserialized हमारे ऑब्जेक्ट्स हैं, MessageBodyWriter s और MessageBodyReader s के माध्यम से

क्या होगा कि एक खोज प्रदाताओं की रजिस्ट्री से की जाएगी, जो कि JSONObject और media type application/json को नियंत्रित कर सकता है। अगर कोई नहीं मिल सकता है, तो जर्सी अनुरोध को संभाल नहीं सकता है और 415 असमर्थित मीडिया प्रकार भेज देगा। आपको सामान्य रूप से सर्वर साइड पर भी अपवाद दर्ज करना चाहिए। यकीन है कि अगर आपको अभी तक लॉग देखने का मौका मिल गया है

जर्सी में org.json ऑब्जेक्ट के लिए कोई भी मानक रीडर / लेखक नहीं है। आपको कार्यान्वयन के लिए वेब पर खोज करना होगा या खुद को एक लिखना होगा, फिर इसे रजिस्टर करना होगा आप यहां इसे लागू करने के तरीके के बारे में अधिक पढ़ सकते हैं।

वैकल्पिक रूप से, आप एक स्ट्रिंग स्वीकार कर सकते हैं और स्ट्रिंग वापस कर सकते हैं। बस स्ट्रिंग पैरामीटर के साथ JSONObject निर्माण और वापस आने पर JSONObject.toString() कॉल करें।

इसके बजाए मेरा सुझाव जैक्सन जैसी डेटा बाध्यकारी ढांचे का उपयोग करना होगा, जो कि सीरियललाइज़िंग और डिस्रिअलाइज़िंग को आउट मॉडल ऑब्जेक्ट्स (सरल पीओजेओ) से संभाल सकता है। उदाहरण के लिए आप एक वर्ग की तरह हो सकते हैं

 public class Model { private String input; public String getInput() { return input; } public void setInput(String input) { this.input = input; } } 

आपके पास एक Model पैरामीटर के रूप में Model हो सकता है

 public ReturnType sayJsonTextHello(Model model) 

ReturnType लिए समान बस उस प्रकार के लिए एक POJO बनाएं, जिसे आप वापस लौटना चाहते हैं। JSON प्रॉपर्टी जावाबीन प्रॉपर्टी नाम पर आधारित होती है (उपरोक्त नामकरण कन्वेंशन के बाद गेटर्स / सेटर्स)

इस समर्थन को पाने के लिए, आप इस मेवेन निर्भरता को जोड़ सकते हैं:

 <dependency> <groupId>org.glassfish.jersey.media</groupId> <artifactId>jersey-media-json-jackson</artifactId> <version>2.17</version> <!-- make sure the jersey version matches the one you are using --> </dependency> 

या यदि आप मेवेन का उपयोग नहीं कर रहे हैं, तो आप इस पोस्ट को देख सकते हैं, जार के लिए आप स्वतंत्र रूप से डाउनलोड कर सकते हैं

कुछ संसाधन:

  • जर्सी JSON समर्थन
  • जैक्सन प्रलेखन