eclipse - जर्सी: जावा क्लास और एमआईएमई मेडियटएप आवेदन/जेसन के लिए एक संदेश शरीर लेखक नहीं मिला था




json jersey (6)

मेरी समस्या क्या है यह जानने का प्रयास करने के बाद, आखिरकार मैंने आपको यह पूछने का फैसला किया कि मेरी समस्या कैसे हल करे मैंने एक ही समस्या के साथ अलग-अलग लोगों को देखा है और मैंने उन सभी चीजों की कोशिश की जो उन्हें करने की सलाह दी गई थी, लेकिन कुछ भी मेरी समस्या में मदद नहीं करता तो बुनियादी तौर पर मुझे एक रसीला सेवा मिल रही है जो मैं जर्सी का उपयोग कर रहा हूं। मेरे क्लाइंट के लिए मैं एक ऑब्जेक्ट को जेसनॉन फॉर्मेट में वापस करना चाहूंगा। मैंने विभिन्न ट्यूटोरियल्स के माध्यम से पढ़ा और तय किया कि यह जर्सी-जेएसन -1.8 लाइब्रेरी का उपयोग करने के लिए उपयुक्त है। मैंने हमेशा की तरह अपनी परियोजना में सब कुछ जोड़ा और इसे चलाने का प्रयास किया लेकिन हर बार जब मैं सेवा (एटीएम अनुरोध प्राप्त करने के माध्यम से) कह रहा हूं। मुझे HTTP त्रुटि कोड 500 (आंतरिक सर्वर त्रुटि) मिल रहा है और मेरा सर्वर प्रतिक्रिया देता है कि कोई संदेश निकाय नहीं है लेखक पाया जा सकता है अगर मैं XML लौट रहा हूं तो यह ठीक काम करता है और सब कुछ महान है मैंने अपने टॉमकाट लिब फ़ोल्डर में जर्सी-जेएसन-1.8.जर कॉपी करने की भी कोशिश की क्योंकि मुझे ऐसा करने के लिए mysql lib का उपयोग कर रहा था, लेकिन उसने या तो मदद नहीं की। अगर आप यह काम करने के लिए मेरी मदद कर सकते हैं तो मुझे वाकई खुशी होगी! यदि आपको किसी भी अधिक जानकारी की आवश्यकता है, तो बस एक टिप्पणी छोड़ दीजिए और मैं इसे यथासंभव मानवीय रूप से प्रदान करूंगा :)

मेरा प्रोजेक्ट सेटअप है: 3 अलग-अलग पैकेज 1. मेरी रीस्टाइन सर्विसेज 2. मेरा जावा वर्क जहां मैं एसक्यूएल कनेक्शन आदि का संचालन करता हूं 3. एक पैकेज जहां मैं अपने सभी मॉडलों को स्टोर करता हूं जिनके साथ मैं काम करना चाहता हूं और मुझे जेसन फॉर्मेट में वापस जाना है ( मेरे उदाहरण में एक testdrive के लिए एक मार्ग)

एक टोमनेट वेबसाइटर IDE: ग्रहण मैं मावेन का उपयोग कर रहा हूँ

कोई फर्क नहीं पड़ता कि मैं ऑब्जेक्ट को वापस करने की कोशिश कर रहा हूं या नहीं, यह सिर्फ काम नहीं करेगा और मुझे लगातार त्रुटि संदेश मिल रहा है:

Mapped exception to response: 500 (Internal Server Error)
javax.ws.rs.WebApplicationException: com.sun.jersey.api.MessageException: A message body writer for Java class com.mykong.models.Teststrecke, and Java type class com.mykong.models.Teststrecke, and MIME media type application/json was not found

संपादित करें: यहां मेरी JSON सेवा विधि है I

@Path("/hellojson")
public class JSONService {


    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public ArrayList<Route> getJSONMsg()  
    {

        Route ts = new Route();
        ts.setId(1);
        ts.setName("HelloWorld");


        Route ts2 = new Route();
        ts2.setId(2);
        ts2.setName("HelloWorld");


        ArrayList<Route> availRoutes = new ArrayList<Route>();
        availRoutes.add(ts);
        availRoutes.add(ts2);


        return availRoutes;


    }
}

पैकेज एक्सप्लोरर में मैवेन निर्भरता के अंतर्गत जांचें, अगर आपको उस या जर्सी-बंडल-1.8.jar दिखाई नहीं दे रही है, तो आप शायद जर्सी-सर्वर को निर्दिष्ट कर चुके हैं जर्सी-बंडल के लिए पॉम। एक्सएमएल में निर्भरता को बदलें और इसे काम करना चाहिए।


जर्सी 2.4: मुझे इस समस्या का भी सामना करना पड़ा और यह पोस्ट करने से यह किसी को मदद करता है मैंने इसे जेसन एपीआई विशिष्टता से जेएसओएन एकीकरण के लिए उठाया है: ( https://jersey.java.net/documentation/latest/user-guide.html#json )

मैं जैटीसन को जेएसओ के साथ जर्सी के साथ एकीकरण के लिए इस्तेमाल किया लेकिन सभी पुस्तकालयों को जोड़ने के बाद भी मुझे त्रुटि मिलती है: जावा क्लास और एमआईएमई मेडियटएप एप्लीकेशन / जेसन के लिए एक संदेश बॉडी लेखक नहीं मिला

सही पुस्तकालयों को जोड़ने और सुविधाओं को भी दर्ज करने के बारे में यह सब> मैंने जर्सी प्रदान किए अन्य सभी के अतिरिक्त एक अतिरिक्त पुस्तकालय जोड़ा है: jersey-media-json-jettison-2.4.jar। और जेटीसन फीचर को पंजीकृत करने के लिए नीचे कोड जोड़ा।

   public class MyApplication extends ResourceConfig{
      public MyApplication() {
          register(JettisonFeature.class);
          packages("org.XXX.XXX.XXX");   
    }

निर्भरता से नीचे जोड़कर मेरी समस्या हल की @ यूजन के अनुसार मैंने अपवाद से छुटकारा पाने में Genson निर्भरता को जोड़ने की कोशिश की, हालांकि मेरा सर्वर किसी कारण से 400 बुरे अनुरोध को फेंक रहा था। ऐसा लगता है कि Genson json अनुरोध को ठीक से स्ट्रीम करने में सक्षम नहीं था। लेकिन निर्भरता से नीचे ठीक काम किया। उम्मीद है कि यह दूसरों की मदद करता है क्योंकि यह समस्या मुझे पागल कर रही थी!

<dependency>
  <groupId>com.fasterxml.jackson.jaxrs</groupId>
  <artifactId>jackson-jaxrs-json-provider</artifactId>
  <version>2.3.0</version>
</dependency>

अपने POM.xml में इस निर्भरताओं को शामिल करें और मेवेन -> अपडेट करें को चुनें

<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-json</artifactId>
    <version>1.18.1</version>
</dependency>
<dependency>
   <groupId>com.owlike</groupId>
   <artifactId>genson</artifactId>
   <version>0.99</version>
</dependency>

यह प्रश्न कुछ समय पहले पूछा गया था, लेकिन उन रीडिंग के लिए, नोट करें कि जर्सी सबलेट कंटेनर की अपनी पॉजो मैपर है

इसे अपने web.xml में निम्नलिखित जोड़कर सक्षम करें

<init-param>
    <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
    <param-value>true</param-value>
</init-param>

मैंने जर्सी और जेनसन नक्शा ऑब्जेक्ट्स के बारे में कुछ विसंगतियां नोटिस की थी। उदाहरण के लिए, यदि एक वर्ग में टाइप ए का एक क्षेत्र होता है जो बी की एक उदाहरण के लिए सेट है, जो कि A का विस्तार करता है, तो जीन्सन बी को ठीक से क्रमबद्ध नहीं करेगा, जबकि जर्सी करता है।


jersey-json निर्भरता को pom.xml के शीर्ष पर ले जाने के लिए मेरे लिए इस समस्या का समाधान किया।

<dependencies>
  <dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-json</artifactId>
    <version>1.18.1</version>
  </dependency>

  <!-- other dependencies -->

</dependencies>






mime