【问题标题】:RestTemplate RestClientException Could not extract response: no suitable HttpMessageConverter foundRestTemplate RestClientException 无法提取响应:找不到合适的 HttpMessageConverter
【发布时间】:2016-06-09 17:15:45
【问题描述】:

调用 RestTemplate 方法时出现此错误

GetStatusRestfulResponse response = restTemplate.getForObject(restRequest.getUrl(), GetStatusRestfulResponse.class,restRequest.getParams());

>org.springframework.web.client.RestClientException: Could not extract response: no suitable HttpMessageConverter found for response type [class GetStatusRestfulResponse] and content type [application/json]
at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:108)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:550)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:511)
at org.springframework.web.client.RestTemplate.getForObject(RestTemplate.java:248)

RestTemplate restTemplate = new RestTemplate();
    HttpClient httpClient   = HttpClientBuilder.create().setDefaultCredentialsProvider(setupAuthentication(restRequest)).build();
    HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(httpClient);
    requestFactory.setReadTimeout(restRequest.getReqTimeOut());
    restTemplate.setRequestFactory(requestFactory);
    restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
response = restTemplate.getForObject(restRequest.getUrl(),     GetStatusRestfulResponse.class,restRequest.getParams());       

【问题讨论】:

    标签: spring jackson resttemplate


    【解决方案1】:

    我能够解决这个问题。罪魁祸首是我使用 GetStatusRestfulResponse 的 java 对象。 我采取了以下步骤来调试问题。

    1. 获得 spring-web 和 jackson-databind 的源代码。
    2. 在调试 spring 和 jackson 源代码时,意识到问题在于 ObjectMapper 无法反序列化 java 对象。
    3. 问题是我的 Java 对象有内部类。

    为了解决 ObjectMapper 无法反序列化 java 对象的问题,我不得不

    1. 为主要的java类和内部类添加默认的无参数构造函数。

    2. 将内部类设为静态。

    这解决了问题:)

    【讨论】:

      猜你喜欢
      • 2017-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-06
      • 1970-01-01
      • 2014-09-03
      相关资源
      最近更新 更多