赞
踩
@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`)
试验 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;
}
原因没有进行深入探究,有知道原因的小伙伴可以分享一下~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。