जर्सी क्लाइंट पोस्ट विधि का उपयोग कर रीस्टफुल वेब-सर्विस को कॉल करते समय त्रुटि

एक सुरक्षित वेब सेवा का उपयोग करने का प्रयास करते समय त्रुटि प्राप्त करना   पोस्ट विधि (फॉर्म परम के साथ)।

मैं POST विधि का उपयोग कर एक आरईएसटी आवेदन का उपभोग करना चाहता हूं। कृपया उस संसाधन वर्ग के नीचे पाएं जिसे मैं एक्सेस करना चाहता हूं।

@Path("/user")

सार्वजनिक वर्ग उपयोगकर्ता {

@POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public Response get(@FormParam("username") String userName,
        @FormParam("userid") String userId  ){

}

मैंने एक्सेस करने के लिए जेरी क्लाइंट का उपयोग करने की कोशिश की। कृपया मेरे द्वारा किए गए कोड के नीचे खोजें। मैंने नीचे दिखाए गए फॉर्मपाराम में मूल्य जोड़ने की कोशिश की।

ट्रेल 1

WebResource webResource = client.resource("baseURL/user");

String input = "userid:1001,username:demo1";
ClientResponse response = webResource.type("application/x-www-form-urlencoded").post(ClientResponse.class, input);

मुझे एक त्रुटि प्रतिक्रिया मिल रही है "सर्वर को एक आंतरिक त्रुटि() का सामना करना पड़ा जिसने इसे इस अनुरोध को पूरा करने से रोका"। मुझे लगता है कि मैं फॉर्मपाराम में मूल्यों को सही तरीके से नहीं जोड़ रहा हूं।

परीक्षण 2

मैंने नीचे दिए गए कोड का उपयोग करके फॉर्म पैरा को जोड़ने का भी प्रयास किया

MultivaluedMap formData = new MultivaluedMapImpl();
    formData.add("userid", "1001");
    formData.add("username", "demo1");
    ClientResponse response = webResource.type("application/x-www-form-urlencoded").post(ClientResponse.class, formData);

इसके परिणामस्वरूप एक ही त्रुटि हुई।

परीक्षण 3

Form f = new Form();
    f.add("userid", "1001D");
    f.add("username", "1001D");

    ClientResponse response = webResource.type(MediaType.APPLICATION_FORM_URLENCODED_TYPE).post(ClientResponse.class, f);

इसके परिणामस्वरूप एक ही त्रुटि हुई। Any help is appreciated.

0
जोड़ा संपादित
विचारों: 1
क्या आपके पास स्टैकट्रैक/त्रुटि संदेश/कुछ है?
जोड़ा लेखक Pavel Bucek, स्रोत

2 उत्तर

चूंकि आपकी त्रुटि इंगित करती है कि "सर्वर में एक आंतरिक त्रुटि आई है" आपको यह देखने के लिए सर्वर (लॉग) को देखने की आवश्यकता है कि क्या गलत हुआ। निश्चित रूप से आपका तीसरा ग्राहक आपके द्वारा परिभाषित सेवा तक पहुंचने के लिए ठीक दिखता है (मान लीजिए कि आप "baseURL" स्ट्रिंग के बजाय कुछ वास्तविक उपयोग कर रहे हैं)।

आप आसानी से परीक्षण कर सकते हैं कि आपका सर्वर सेवा तक पहुंचने के लिए एक HTML पृष्ठ बनाकर अपने क्लाइंट से अलग से काम कर रहा है। Enctype = "application/x-www-form-urlencoded" का उपयोग करके एक HTML फॉर्म बनाएं और फॉर्म पैरामीटर उपयोगकर्ता आईडी और उपयोगकर्ता नाम के साथ अपनी सेवा एंडपॉइंट (जिसे आप "बेसURL/उपयोगकर्ता" कहते हैं) पर पोस्ट कर रहे हैं। जब आप किसी ब्राउज़र में HTML फॉर्म देखते हैं और सबमिट बटन दबाते हैं, तो यह आपके सर्वर को कॉल करेगा - अगर आपको एक ही त्रुटि मिलती है तो आप सुनिश्चित कर सकते हैं कि यह आपके क्लाइंट कोड से कुछ लेना देना नहीं है।

0
जोड़ा

आशा है कि http://yogeshmprajapati.blogspot.in/2011/ 12/login-to-fb-from-java.html आपकी मदद करेगा।

0
जोड़ा