Imansible deserializzare l'istanza dell'object da START_ARRAY token nella spring 3 REST Web Service

Sto facendo uso di questa cosa cool Spring offre: spring RESTWebService (versione della spring è 3). Se accedo l'URL dal browser, posso vedere la risposta JSON, ma da un endpoint del client (applicazione Android) iIcrivo questo messaggio di errore:

Caused by: org.springframework.web.client.ResourceAccessException: I/O error: Can not deserialize instance of MyObject out of START_ARRAY token at [Source: org.apache.http.conn.EofSensorInputStream@4076e940; line: 1, column: 1]; nested exception is org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of MyObject out of START_ARRAY token at [Source: org.apache.http.conn.EofSensorInputStream@4076e940; line: 1, column: 1] at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:466) at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:414) at org.springframework.web.client.RestTemplate.getForEntity(RestTemplate.java:234) at com.be.android.locateconsultants.resources.AsyncTaskRESTServiceCaller.doInBackground(AsyncTaskRESTServiceCaller.java:43) at com.be.android.locateconsultants.resources.AsyncTaskRESTServiceCaller.doInBackground(AsyncTaskRESTServiceCaller.java:1) at android.os.AsyncTask$2.call(AsyncTask.java:252) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) ... 4 more Caused by: org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of MyObject out of START_ARRAY token at [Source: org.apache.http.conn.EofSensorInputStream@4076e940; line: 1, column: 1] at org.codehaus.jackson.map.deser.StdDeserializationContext.mappingException(StdDeserializationContext.java:198) at org.codehaus.jackson.map.deser.BeanDeserializer.deserializeUsingCreator(BeanDeserializer.java:565) at org.codehaus.jackson.map.deser.BeanDeserializer.deserialize(BeanDeserializer.java:365) at org.codehaus.jackson.map.ObjectMapper._readMapAndClose(ObjectMapper.java:2395) at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1655) at org.springframework.http.converter.json.MappingJacksonHttpMessageConverter.readInternal(MappingJacksonHttpMessageConverter.java:135) at org.springframework.http.converter.AbstractHttpMessageConverter.read(AbstractHttpMessageConverter.java:154) at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:74) at org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:632) at org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:618) at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:459) ... 10 more 

La struttura MyObject è la stessa di quella dell'applicazione lato server.

  • Aggiorna ViewPager dynamicmente?
  • Ubuntu 64 con bundle di Android 64 non riesce ad eseguire l'esecuzione di adb
  • Convertire latitudine e longitudine in esri arcGIS MapPoint
  • Invocazione metodo 'fab.setOnClickListener (nuovo View.OnClickListener () {@Override public void on ...' può produrre 'java.lang.NullPointerException'
  • Provare a riprodurre video utilizzando l'applicazione adb shell screenrecord Android 4.4
  • Come creare un'attività di sovrapposizione a schermo integer sempre in alto in Android
  • Ho cercato di richiedere il server come questo:

     final String url = "....."; RestTemplate restTemplate = new RestTemplate(); ResponseEntity<Consultant> responseEntity = restTemplate.getForEntity( url, Consultant.class); 

    O così:

     HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); HttpEntity<String> entity = new HttpEntity<String>(headers); ResponseEntity<MyObject> response = restTemplate .exchange("....",HttpMethod.GET, entity, MyObject.class); System.out.println("RESPONSE: " + response.getBody()); 

    Ma ancora lo stesso errore come sopra. Non riesco a capire quello che mi manca a questo punto, qualsiasi idea o suggerimento sarebbe grande. Grazie.

  • I frammenti non vengono rilasciati dalla memory
  • ActionBar con le tabs di navigazione cambia altezza con orientamento dello schermo
  • twitter4j nessuna sfida di authentication trovata
  • BufferQueue è stato abbandonato: durante la riproduzione di video con TextureView
  • Invio di intenti con bundle con console
  • Errore di exception di Android SupportMapFragment
  • 3 Solutions collect form web for “Imansible deserializzare l'istanza dell'object da START_ARRAY token nella spring 3 REST Web Service”

    La soluzione in una situazione simile è stata quella di mappare a Consultant[].class Questo vale se si tenta di deserializzare un arrays JSON degli oggetti mappati.

    Dovresti carteggiarlo in List<Consultant> piuttosto che Consultant.class .

    Ciò è legato a Jackson e al modo in cui stai tentando di deserializzare e inizializzare un contenitore da una matrix.

    Mentre il mio context di utilizzo è un po 'diverso, questo può aiutare alcuni che vengono qui a cercare gli errori di deserializzazione specifici di Jackson.

    Ho dovuto farlo così:

     List<Consultant> consultants = Arrays.asList( mapper.readValue(myJson.toString(), Consultants[].class) ); 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.