Клиент Jax-rs не может десериализовать ответ JSON, возвращенный из сгенерированного класса RAML 1.0 - PullRequest
0 голосов
/ 26 сентября 2018

Я сгенерировал классы из RAML 1.0 с помощью raml-to-jaxrs-maven-plugin 3.0.3, с помощью клиента Jax-rs вызов службы выполняется нормально, но я не могу десериализовать ответ.

    JAXRSClientFactoryBeanfactory.setAddress(endPointUrl);
    factory.setResourceClass(serviceClass);
    // Add header
    Map<String,String> headers = new HashMap();    
    headers.put("Charset", StandardCharsets.UTF_8.name());   
    headers.put("Accept",mediaType);
    factory.setHeaders(headers);
    // Add provider
    List<Object> providers = new ArrayList();      
    providers.add(new JacksonJsonProvider());      
    factory.setProviders(providers);       
    Client webClient= factory.create(); 

Ответ клиента не десериализуем, получая нижнюю ошибку

Caused by: com.fasterxml.jackson.databind.JsonMappingException: Can not find a deserializer for non-concrete Map type [map type; class javax.ws.rs.core.MultivaluedMap, [simple type, class java.lang.String] -> [collection type; class java.util.List, contains [simple type, class java.lang.String]]] at [Source: sun.net.www.protocol.http.HttpURLConnection$HttpInputStream@6f2398a8; line: 1, column: 1]
at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:305)
at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:268)
at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:244)
at com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:142)
at com.fasterxml.jackson.databind.DeserializationContext.findNonContextualValueDeserializer(DeserializationContext.java:466)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.resolve(BeanDeserializerBase.java:479)
at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:293)
at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:244)
at com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:142)
at com.fasterxml.jackson.databind.DeserializationContext.findRootValueDeserializer(DeserializationContext.java:476)
at com.fasterxml.jackson.databind.ObjectReader._findRootDeserializer(ObjectReader.java:1859)
at com.fasterxml.jackson.databind.ObjectReader._bind(ObjectReader.java:1578)
at com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:964)
at com.fasterxml.jackson.jaxrs.base.ProviderBase.readFrom(ProviderBase.java:815)
at org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromMessageBodyReader(JAXRSUtils.java:1348)
at org.apache.cxf.jaxrs.impl.ResponseImpl.doReadEntity(ResponseImpl.java:370)
... 42 common frames omitted Caused by: java.lang.IllegalArgumentException: Can not find a deserializer for non-concrete Map type [map type; class javax.ws.rs.core.MultivaluedMap, [simple type, class java.lang.String] -> [collection type; class java.util.List, contains [simple type, class java.lang.String]]]
at com.fasterxml.jackson.databind.deser.BasicDeserializerFactory.createMapDeserializer(BasicDeserializerFactory.java:1162)
at com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer2(DeserializerCache.java:377)
at com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer(DeserializerCache.java:349)
at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:264)
... 56 common frames omitted
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...