Tôi đang sử dụng điều thú vị này Spring cung cấp: Spring RESTWebService (Phiên bản của Spring là 3). Nếu tôi truy cập vào địa chỉ URL từ trình duyệt tôi có thể thấy phản ứng JSON, nhưng từ một thiết bị đầu cuối khách hàng (ứng dụng Android) iIreceive này thông báo lỗi:Không thể deserialize thể hiện của đối tượng ra khỏi START_ARRAY mã thông báo trong Spring 3 REST Webservice
Caused by: org.springframework.web.client.ResourceAccessException:
I/O error: Can not deserialize instance of MyObject out of START_ARRAY token
at [Source: [email protected]; 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: [email protected]; 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: [email protected]; 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
cấu trúc MyObject là giống như một từ các ứng dụng phía máy chủ.
Tôi đã cố gắng để yêu cầu máy chủ như thế này:
final String url = ".....";
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<Consultant> responseEntity = restTemplate.getForEntity(
url, Consultant.class);
Hoặc như thế này:
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());
Nhưng vẫn báo lỗi tương tự như trên. Không thể tìm ra những gì tôi đang thiếu tại thời điểm này, bất kỳ ý tưởng hay gợi ý nào sẽ là tuyệt vời. Cảm ơn bạn.
Cấu trúc json là gì, MyObject trông như thế nào. Không đủ thông tin. Đoán duy nhất tôi thấy là bạn đang nhận mảng từ máy chủ và cố gắng ánh xạ nó tới MyObject. – pawelzieba
trong ứng dụng khách: 'Tư vấn cấp công khai { \t id nội bộ cá nhân; \t riêng String firstName; \t Private String lastName; \t chuỗi riêng phoneNumber; \t riêng String jobName; \t chuỗi riêng tư workAddress; \t riêng Ngày tạo; \t email chuỗi riêng tư; getters và setters} ' –
và json phản hồi là:' [{"id": 1, "firstName": "first name", "lastName": "last name", "jobName": "programmer", "được tạo ": 1328133600000," email ":" [email protected] "," workAddress ":" test "," phoneNumber ":" 0000 "}, {...}, {..}] ' –