当前位置:   article > 正文

FeignClient【问题】Cannot deserialize value of type``from Object value (token `JsonToken.START_OBJECT`)_cannot deserialize value of type `java.lang.string

cannot deserialize value of type `java.lang.string` from object value (token

1. 问题描述

@FeignClient(name = "dataServiceQueryInterface", url = "${url}:${port}")
public interface DataServiceQueryInterface {
    @GetMapping("/dataReport/getSysAreaAllList")
    List<SysArea> getSysAreaAllList() throws Exception;
}
  • 1
  • 2
  • 3
  • 4
  • 5

使用接口获取数据时报错:

Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception 
[Request processing failed; nested exception is feign.codec.DecodeException: 
Error while extracting response for type 
[java.util.List<com.xxx.datamatch.datacar.entity.SysArea>] and content type 
[application/json;charset=UTF-8]; nested exception is 
org.springframework.http.converter.HttpMessageNotReadableException: 
JSON parse error: Cannot deserialize value of type 
`java.util.ArrayList<com.xxx.datamatch.datacar.entity.SysArea>` 
from Object value (token `JsonToken.START_OBJECT`); 
nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: 
Cannot deserialize value of type 
`java.util.ArrayList<com.xxx.datamatch.datacar.entity.SysArea>` 
from Object value (token `JsonToken.START_OBJECT`)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

2. 问题方法

试验 1️⃣ 添加依赖【无任何效果】

<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>fastjson</artifactId>
	<version>1.2.46</version>
</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5

试验 2️⃣ 修改返回类型【不报错 但是结果数据是字符串 未封装需要自行解析】

@FeignClient(name = "dataServiceQueryInterface", url = "${url}:${port}")
public interface DataServiceQueryInterface {
    @GetMapping("/dataReport/getSysAreaAllList")
    String getSysAreaAllList() throws Exception;
}
  • 1
  • 2
  • 3
  • 4
  • 5

最终解决方案 3️⃣【将@GetMapping修改为@PostMapping】

@FeignClient(name = "dataServiceQueryInterface", url = "${url}:${port}")
public interface DataServiceQueryInterface {
    @PostMapping("/dataReport/getSysAreaAllList")
    List<SysArea> getSysAreaAllList() throws Exception;
}
  • 1
  • 2
  • 3
  • 4
  • 5

原因没有进行深入探究,有知道原因的小伙伴可以分享一下~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/520498
推荐阅读
相关标签
  

闽ICP备14008679号