Не удалось прочитать JSON: невозможно десериализовать экземпляр org.springframework.xd.rest.domain.JobExecutionInfoResource[] из токена START_OBJECT

Получение этой ошибки при запуске кода ниже в eclispe

SpringXDTemplate xdTemplate = new SpringXDTemplate(new URI("http://my.ip:9393"));
List<JobExecutionInfoResource> listJobExecutions = xdTemplate.jobOperations().listJobExecutions();

я использую spring-xd версии 1.3.1, и ниже приведена трассировка стека ошибки:

Exception in thread "main" org.springframework.http.converter.HttpMessageNotReadableException: Could not read JSON: Can not deserialize instance of org.springframework.xd.rest.domain.JobExecutionInfoResource[] out of START_OBJECT token
 at [Source: sun.net.www.protocol.http.HttpURLConnection$HttpInputStream@4478de9f; line: 1, column: 1]; nested exception is com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of org.springframework.xd.rest.domain.JobExecutionInfoResource[] out of START_OBJECT token
 at [Source: sun.net.www.protocol.http.HttpURLConnection$HttpInputStream@4478de9f; line: 1, column: 1]
    at org.springframework.http.converter.json.MappingJackson2HttpMessageConverter.readJavaType(MappingJackson2HttpMessageConverter.java:228)
    at org.springframework.http.converter.json.MappingJackson2HttpMessageConverter.read(MappingJackson2HttpMessageConverter.java:220)
    at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:95)
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:553)
    at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:506)
    at org.springframework.web.client.RestTemplate.getForObject(RestTemplate.java:243)
    at org.springframework.xd.rest.client.impl.JobTemplate.listJobExecutions(JobTemplate.java:145)
    at com.citiustech.hscale.dataIngestion.App.main(App.java:20)
Caused by: com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of org.springframework.xd.rest.domain.JobExecutionInfoResource[] out of START_OBJECT token
 at [Source: sun.net.www.protocol.http.HttpURLConnection$HttpInputStream@4478de9f; line: 1, column: 1]
    at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:164)
    at com.fasterxml.jackson.databind.DeserializationContext.mappingException(DeserializationContext.java:691)
    at com.fasterxml.jackson.databind.DeserializationContext.mappingException(DeserializationContext.java:685)
    at com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer.handleNonArray(ObjectArrayDeserializer.java:222)
    at com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer.deserialize(ObjectArrayDeserializer.java:133)
    at com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer.deserialize(ObjectArrayDeserializer.java:18)
    at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:2993)
    at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2158)
    at org.springframework.http.converter.json.MappingJackson2HttpMessageConverter.readJavaType(MappingJackson2HttpMessageConverter.java:225)
    ... 7 more

person black jack    schedule 30.06.2016    source источник


Ответы (1)


На самом деле это была проблема с jar. В коде я использовал банку rest-client 1.0.4, а моя версия spring xd была 1.3.1. Более того, последняя версия jar для остальных клиентов (1.3.1) недоступна в maven, но то же самое доступно в папке развертывания spring-xd.

https://mvnrepository.com/artifact/org.springframework.xd/spring-xd-rest-client

person black jack    schedule 01.07.2016