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

简介: FeignClient【问题】Cannot deserialize value of type``from Object value (token `JsonToken.START_OBJECT`)

1. 问题描述

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

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

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`)

2. 问题方法

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

<dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>fastjson</artifactId>
  <version>1.2.46</version>
</dependency>

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

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

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

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

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

目录
相关文章
|
7月前
|
Java 测试技术 数据库
hql投影查询之—— [Ljava.lang.Object; cannot be cast to cn.bdqn.guanMingSys.entity.Notice
hql投影查询之—— [Ljava.lang.Object; cannot be cast to cn.bdqn.guanMingSys.entity.Notice
|
7月前
|
关系型数据库 MySQL
mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file
mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file
380 0
|
2月前
|
Python
通过 type 和 object 之间的关联,进一步分析类型对象
通过 type 和 object 之间的关联,进一步分析类型对象
68 3
|
4月前
|
Docker 容器
成功解决:Caused by: ParsingException[Failed to parse object: expecting token of type [START_OBJECT] but
这篇文章讨论了在使用Docker启动Elasticsearch容器时遇到的一个具体问题:由于配置文件`elasticsearch.yml`解析出错导致容器启动失败。文章提供了详细的排查过程,包括查看容器的日志信息、检查并修正配置文件中的错误(特别是空格问题),并最终成功重新启动了容器。
|
4月前
|
应用服务中间件 Shell 网络安全
nginx安装提示 libssl.so.3: cannot open shared object file: No
【8月更文挑战第1天】### 原因 未将安装的ssl中的`libssl.so.3`链接到`/usr/lib`导致缺失。 ### 解决方案 1. 检查openssl是否已安装,若为低版本则需重装。 ```sh whereis openssl
2322 6
|
4月前
|
JSON 数据格式 Python
【python】解决json.dump(字典)时报错Object of type ‘float32‘ is not JSON serializable
在使用json.dump时遇到的“Object of type ‘float32’ is not JSON serializable”错误的方法,通过自定义一个JSON编码器类来处理NumPy类型的数据。
208 1
|
4月前
|
Ubuntu
Ubuntu22.04,AOSP编译报错: libncurses.so.5: cannot open shared object file: No such file
本文描述了在Ubuntu 22.04系统上编译AOSP时遇到的`libncurses.so.5`缺失错误,并提供了通过安装相应库解决该问题的步骤。
553 0
|
5月前
|
关系型数据库 MySQL
mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file
mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file
482 2
|
7月前
|
JavaScript
Vue报错 Invalid default value for prop “list“: Props with type Object/Array must use a factory
Vue报错 Invalid default value for prop “list“: Props with type Object/Array must use a factory
361 0
|
5月前
|
JSON 前端开发 数据格式
【Python】已解决:TypeError: Object of type JpegImageFile is not JSON serializable
【Python】已解决:TypeError: Object of type JpegImageFile is not JSON serializable
109 0