Page 2 of 2 FirstFirst 12
Results 11 to 13 of 13

Thread: Unable to pass list [Rest, XML, Android]

  1. #11
    Join Date
    Oct 2011
    Posts
    3

    Default

    If i use this below source, to proces this json return ({"category":{"name":"Cagetory 1"}}) , i have problem too.


    Source

    Code:
    	GsonHttpMessageConverter messageConverter = new GsonHttpMessageConverter();
    	messageConverter.setSupportedMediaTypes(Collections
    		.singletonList(MediaType.APPLICATION_JSON));
    	List<HttpMessageConverter<?>> messageConverters = new ArrayList<HttpMessageConverter<?>>();
    	messageConverters.add(messageConverter);
    	restTemplate.setMessageConverters(messageConverters);
    
    	// Perform the HTTP GET request to the Google search API
    	CategoryRest response = restTemplate.postForObject(url, null,
    		CategoryRest.class);
    	categorias = response.getCategory();
    StackTrace
    Code:
    11-10 18:07:48.974: ERROR/AndroidRuntime(973): FATAL EXCEPTION: AsyncTask #1
    11-10 18:07:48.974: ERROR/AndroidRuntime(973): java.lang.RuntimeException: An error occured while executing doInBackground()
    11-10 18:07:48.974: ERROR/AndroidRuntime(973):     at android.os.AsyncTask$3.done(AsyncTask.java:200)
    11-10 18:07:48.974: ERROR/AndroidRuntime(973):     at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
    11-10 18:07:48.974: ERROR/AndroidRuntime(973):     at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
    11-10 18:07:48.974: ERROR/AndroidRuntime(973):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
    11-10 18:07:48.974: ERROR/AndroidRuntime(973):     at java.util.concurrent.FutureTask.run(FutureTask.java:137)
    11-10 18:07:48.974: ERROR/AndroidRuntime(973):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
    11-10 18:07:48.974: ERROR/AndroidRuntime(973):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
    11-10 18:07:48.974: ERROR/AndroidRuntime(973):     at java.lang.Thread.run(Thread.java:1096)
    11-10 18:07:48.974: ERROR/AndroidRuntime(973): Caused by: java.lang.NullPointerException
    11-10 18:07:48.974: ERROR/AndroidRuntime(973):     at org.apache.harmony.luni.lang.reflect.ListOfTypes.length(ListOfTypes.java:47)
    11-10 18:07:48.974: ERROR/AndroidRuntime(973):     at org.apache.harmony.luni.lang.reflect.ImplForType.toString(ImplForType.java:83)
    11-10 18:07:48.974: ERROR/AndroidRuntime(973):     at java.lang.StringBuilder.append(StringBuilder.java:203)
    11-10 18:07:48.974: ERROR/AndroidRuntime(973):     at com.google.gson.JsonDeserializerExceptionWrapper.deserialize(JsonDeserializerExceptionWrapper.java:57)
    11-10 18:07:48.974: ERROR/AndroidRuntime(973):     at com.google.gson.JsonDeserializationVisitor.invokeCustomDeserializer(JsonDeserializationVisitor.java:92)
    11-10 18:07:48.974: ERROR/AndroidRuntime(973):     at com.google.gson.JsonObjectDeserializationVisitor.visitFieldUsingCustomHandler(JsonObjectDeserializationVisitor.java:117)
    11-10 18:07:48.974: ERROR/AndroidRuntime(973):     at com.google.gson.ReflectingFieldNavigator.visitFieldsReflectively(ReflectingFieldNavigator.java:63)
    11-10 18:07:48.974: ERROR/AndroidRuntime(973):     at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:120)
    11-10 18:07:48.974: ERROR/AndroidRuntime(973):     at com.google.gson.JsonDeserializationContextDefault.fromJsonObject(JsonDeserializationContextDefault.java:76)
    11-10 18:07:48.974: ERROR/AndroidRuntime(973):     at com.google.gson.JsonDeserializationContextDefault.deserialize(JsonDeserializationContextDefault.java:54)
    11-10 18:07:48.974: ERROR/AndroidRuntime(973):     at com.google.gson.Gson.fromJson(Gson.java:551)
    11-10 18:07:48.974: ERROR/AndroidRuntime(973):     at com.google.gson.Gson.fromJson(Gson.java:498)
    11-10 18:07:48.974: ERROR/AndroidRuntime(973):     at com.google.gson.Gson.fromJson(Gson.java:441)
    11-10 18:07:48.974: ERROR/AndroidRuntime(973):     at org.springframework.http.converter.json.GsonHttpMessageConverter.readInternal(GsonHttpMessageConverter.java:140)
    11-10 18:07:48.974: ERROR/AndroidRuntime(973):     at org.springframework.http.converter.AbstractHttpMessageConverter.read(AbstractHttpMessageConverter.java:148)
    11-10 18:07:48.974: ERROR/AndroidRuntime(973):     at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:68)
    11-10 18:07:48.974: ERROR/AndroidRuntime(973):     at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:470)
    11-10 18:07:48.974: ERROR/AndroidRuntime(973):     at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:425)
    11-10 18:07:48.974: ERROR/AndroidRuntime(973):     at org.springframework.web.client.RestTemplate.postForObject(RestTemplate.java:303)
    11-10 18:07:48.974: ERROR/AndroidRuntime(973):     at com.impact.client.tablet.dat.request.CategoryRequest.oneCategory(CategoryRequest.java:48)
    11-10 18:07:48.974: ERROR/AndroidRuntime(973):     at com.impact.client.tablet.dat.busca.OneCategoryDAT.doInBackground(OneCategoryDAT.java:22)
    11-10 18:07:48.974: ERROR/AndroidRuntime(973):     at com.impact.client.tablet.dat.busca.OneCategoryDAT.doInBackground(OneCategoryDAT.java:1)
    11-10 18:07:48.974: ERROR/AndroidRuntime(973):     at android.os.AsyncTask$2.call(AsyncTask.java:185)
    11-10 18:07:48.974: ERROR/AndroidRuntime(973):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
    11-10 18:07:48.974: ERROR/AndroidRuntime(973):     ... 4 more
    11-10 18:07:49.034: WARN/ActivityManager(58):   Force finishing activity com.impact.client/.tablet.controller.cardapio.CardapioLayoutActivity
    11-10 18:07:52.754: ERROR/WindowManager(973): Activity com.impact.client.tablet.controller.cardapio.CardapioLayoutActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@44f668c8 that was originally added here
    11-10 18:07:52.754: ERROR/WindowManager(973): android.view.WindowLeaked: Activity com.impact.client.tablet.controller.cardapio.CardapioLayoutActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@44f668c8 that was originally added here
    11-10 18:07:52.754: ERROR/WindowManager(973):     at android.view.ViewRoot.<init>(ViewRoot.java:247)
    11-10 18:07:52.754: ERROR/WindowManager(973):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148)
    11-10 18:07:52.754: ERROR/WindowManager(973):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
    11-10 18:07:52.754: ERROR/WindowManager(973):     at android.view.Window$LocalWindowManager.addView(Window.java:424)
    11-10 18:07:52.754: ERROR/WindowManager(973):     at android.app.Dialog.show(Dialog.java:241)
    11-10 18:07:52.754: ERROR/WindowManager(973):     at com.impact.client.tablet.controller.cardapio.AAsyncActivityImplDefault.showProgressDialog(AAsyncActivityImplDefault.java:36)
    11-10 18:07:52.754: ERROR/WindowManager(973):     at com.impact.client.tablet.controller.cardapio.AAsyncActivityImplDefault.showLoadingProgressDialog(AAsyncActivityImplDefault.java:26)
    11-10 18:07:52.754: ERROR/WindowManager(973):     at com.impact.client.tablet.controller.cardapio.AAsyncActivity.showLoadingProgressDialog(AAsyncActivity.java:15)
    11-10 18:07:52.754: ERROR/WindowManager(973):     at com.impact.client.tablet.dat.ADownloadTask.onPreExecute(ADownloadTask.java:32)
    11-10 18:07:52.754: ERROR/WindowManager(973):     at android.os.AsyncTask.execute(AsyncTask.java:391)
    11-10 18:07:52.754: ERROR/WindowManager(973):     at com.impact.client.tablet.controller.cardapio.CardapioLayoutModel.oneCategory(CardapioLayoutModel.java:22)
    11-10 18:07:52.754: ERROR/WindowManager(973):     at com.impact.client.tablet.controller.cardapio.CardapioLayoutActivity$1.onClick(CardapioLayoutActivity.java:36)
    11-10 18:07:52.754: ERROR/WindowManager(973):     at android.view.View.performClick(View.java:2408)
    11-10 18:07:52.754: ERROR/WindowManager(973):     at android.view.View$PerformClick.run(View.java:8816)
    11-10 18:07:52.754: ERROR/WindowManager(973):     at android.os.Handler.handleCallback(Handler.java:587)
    11-10 18:07:52.754: ERROR/WindowManager(973):     at android.os.Handler.dispatchMessage(Handler.java:92)
    11-10 18:07:52.754: ERROR/WindowManager(973):     at android.os.Looper.loop(Looper.java:123)
    11-10 18:07:52.754: ERROR/WindowManager(973):     at android.app.ActivityThread.main(ActivityThread.java:4627)
    11-10 18:07:52.754: ERROR/WindowManager(973):     at java.lang.reflect.Method.invokeNative(Native Method)
    11-10 18:07:52.754: ERROR/WindowManager(973):     at java.lang.reflect.Method.invoke(Method.java:521)
    11-10 18:07:52.754: ERROR/WindowManager(973):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
    11-10 18:07:52.754: ERROR/WindowManager(973):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
    11-10 18:07:52.754: ERROR/WindowManager(973):     at dalvik.system.NativeStart.main(Native Method)
    Last edited by netstart; Nov 10th, 2011 at 12:13 PM.

  2. #12
    Join Date
    Oct 2011
    Posts
    3

    Default

    If i use below source, Category is intanciate, but your properties is null.
    I believe that this behavior may be related.

    Code:
    List<Category> categorias;
    	/*
    	 * This request return: {"category":{"name":"Cagetory 1"}}
    	 */
    
    	RestTemplate restTemplate = new RestTemplate();
    	HttpHeaders requestHeaders = new HttpHeaders();
    	List<MediaType> acceptableMediaTypes = new ArrayList<MediaType>();
    	acceptableMediaTypes.add(MediaType.APPLICATION_JSON);
    	requestHeaders.setAccept(acceptableMediaTypes);
    	HttpEntity<?> requestEntity = new HttpEntity<Object>(requestHeaders);
    
    	ResponseEntity<Category> responseEntity = restTemplate.postForEntity(url,
    		requestEntity, Category.class);
    	Category cat = responseEntity.getBody(); //cat is intanciate, but your properties is null
    	categorias = new ArrayList<Category>();
    	categorias.add(cat);

  3. #13
    Join Date
    Nov 2010
    Posts
    174

    Default

    The information in this JIRA may be helpful for JSON mapping with Jackson.

    https://jira.springsource.org/browse/ANDROID-45
    Roy Clarkson
    Spring Mobile Projects Lead

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •