मैं spring android rest template
का उपयोग कर रहा हूं और here दिखाए गए अनुसार जावा क्लास में JSON प्रतिक्रिया को परिवर्तित करने का प्रयास कर रहा हूं।एंड्रॉइड RestClientException: कोई उपयुक्त HttpMessageConverter
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new MappingJacksonHttpMessageConverter());
//I have already tried to manually setting converters with no luck
//List<HttpMessageConverter<?>> messageConverters = new ArrayList<HttpMessageConverter<?>>();
//messageConverters.add(new MappingJacksonHttpMessageConverter());
//messageConverters.add(new FormHttpMessageConverter());
//messageConverters.add(new StringHttpMessageConverter());
//restTemplate.setMessageConverters(messageConverters);
Result result = restTemplate.getForObject(url, Result.class);
मुझे लगता है कि मैं आवश्यक सब कुछ किया है के रूप में यह दस्तावेज़ में कहा है:
- मैं अपने classpath में जार निम्नलिखित है
यहाँ मेरी टुकड़ा काम करने के लिए कोशिश कर रहा है
- जैक्सन-सब-1.7.6.jar
- वसंत-android-आराम-टेम्पलेट 1.0.0.M2.jar
url
वास्तव में एक JSON ऑब्जेक्ट देता है।- मेरे
Result
वर्ग सभी आवश्यक फ़ील्ड
के साथ एक POJO है मूल रूप से मेरी classpath में Jackson dependencies
होने यह काम के रूप में यह कहते हैं करने के लिए पर्याप्त होना चाहिए:
MappingJacksonHttpMessageConverter सशर्त जब भरी हुई है आप एक नया RestTemplate उदाहरण बनाते हैं। यदि आपके क्लासपाथ में जैक्सन निर्भरताएं पाई जाती हैं, तो संदेश कनवर्टर स्वचालित रूप से जोड़ा जाएगा और आरईएसटी संचालन में उपयोग के लिए उपलब्ध होगा।
तो मैं यहां क्या खो रहा हूं, मैं क्या गलत कर रहा हूं?
धन्यवाद
पूर्ण अपवाद यहां पाया जा सकता:
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): FATAL EXCEPTION: main
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): java.lang.IllegalStateException: Could not execute method of the activity
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): at android.view.View$1.onClick(View.java:2083)
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): at android.view.View.performClick(View.java:2421)
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): at android.view.View$PerformClick.run(View.java:8869)
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): at android.os.Handler.handleCallback(Handler.java:587)
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): at android.os.Handler.dispatchMessage(Handler.java:92)
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): at android.os.Looper.loop(Looper.java:143)
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): at android.app.ActivityThread.main(ActivityThread.java:5068)
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): at java.lang.reflect.Method.invokeNative(Native Method)
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): at java.lang.reflect.Method.invoke(Method.java:521)
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): at dalvik.system.NativeStart.main(Native Method)
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): Caused by: java.lang.reflect.InvocationTargetException
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): at xxx.SamplePageActivity.doRest(SamplePageActivity.java:83)
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): at java.lang.reflect.Method.invokeNative(Native Method)
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): at java.lang.reflect.Method.invoke(Method.java:521)
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): at android.view.View$1.onClick(View.java:2078)
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): ... 11 more
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): Caused by: org.springframework.web.client.RestClientException: Could not extract response: no suitable HttpMessageConverter found for response type [[Lxxx.SamplePageActivity$Result;] and content type [application/json;charset=UTF-8]
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:77)
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:449)
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:404)
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): at org.springframework.web.client.RestTemplate.getForObject(RestTemplate.java:202)
04-20 04:25:52.706: ERROR/AndroidRuntime(9638): ... 15 more
यह बहुत ही रोचक है। मुझे जवाब सुनना अच्छा लगेगा। – aykut