मुझे माफ़ कर दो, लेकिन मैं इस प्रश्न को ठीक से पूछने के लिए आवश्यक सभी लिंगो से परिचित नहीं हो सकता।जैक्स-आरएस में सामग्री प्रकार बदलना REST सेवा
मैं जैक्स-आरएस के org.apache.cxf.jaxrs.ext
कार्यान्वयन का उपयोग कर जावा में एक काफी सरल आरईएसटी वेब सेवा पर काम कर रहा हूं। विधि हेडर कुछ इस तरह है:
@GET
@Path("json/{fullAlias}")
@Produces({"application/json"})
public String json(@PathParam("fullAlias") String fullAlias, @Context MessageContext req)
जहां MessageContext org.apache.cxf.jaxrs.ext.MessageContext
है।
दो चीजें मैं पूरा करने के लिए है कि मैं यह पता लगाने की कोशिश कर रहा हूँ नहीं कर पा रहे हैं:
- बदलें सामग्री प्रकार यदि कुछ शर्तों (एक त्रुटि के लिए उदाहरण के लिए)
- बदलें मुलाकात कर रहे हैं प्रतिक्रिया की स्थिति कोड
मैं MessageContext के माध्यम से एक्सेस करके उसका उत्तर को बदल कर उपयोग करने की कोशिश की है:
HttpServletResponse response = req.getHttpServletResponse();
response.setContentType("text/plain")
response.setStatus("HttpServletResponse.SC_BAD_REQUEST);
लेकिन इन परिवर्तनों को प्रतिक्रिया प्रतिक्रिया पर कोई असर नहीं पड़ता है; @ प्रोड्यूस एनोटेशन के साथ या उसके बिना, विधि के अंदर सामग्री प्रकार को सेट करने से वास्तविक सामग्री प्रकार को प्रभावित नहीं होता है (एनोटेशन के साथ, यह निश्चित रूप से "एप्लिकेशन/जेसन" देता है, बिना इसे "टेक्स्ट/एचटीएमएल" पर डिफ़ॉल्ट करता है)।
मैं शरीर के रूप में एक साधारण स्ट्रिंग लौट रहा हूं। मैंने javax.ws.rs.core.Response ऑब्जेक्ट को वापस करने की कोशिश करने का प्रयास किया है जो मैं चाहता हूं, लेकिन मुझे इसके बारे में बहुत कुछ पता नहीं है।
मैं इस विधि के अंदर से सामग्री प्रकार और/या स्थिति कोड कैसे बदलूं?
धन्यवाद!मैं सोच रहा था कि ऐसा कुछ काम करेगा, लेकिन आप मुझे बताएं कि यह कैसे करें। – Indigenuity