feign.codec.DecodeException异常解决方案
使用feign两个服务之间调用,遇到下面的错误
14:49:18.197 logback [ForkJoinPool.commonPool-worker-2] WARN o.s.h.c.j.MappingJackson2HttpMessageConverter 127 - Failed to evaluate Jackson deserialization for type [[simple type, class com.xxxx.common.ServiceResult<java.util.List<com.xxxx.base.entity.meta.MetaFieldEntity>>]]: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
14:49:18.199 logback [http-nio-9102-exec-1] WARN o.s.h.c.j.MappingJackson2HttpMessageConverter 127 - Failed to evaluate Jackson deserialization for type [[simple type, class com.xxxx.common.ServiceResult<java.util.List<com.xxxx.base.entity.meta.MetaFieldEntity>>]]: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
14:49:18.200 logback [ForkJoinPool.commonPool-worker-2] WARN o.s.h.c.j.MappingJackson2HttpMessageConverter 127 - Failed to evaluate Jackson deserialization for type [[simple type, class com.xxxx.common.ServiceResult<java.util.List<com.xxxx.base.entity.meta.MetaFieldEntity>>]]: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
14:49:18.202 logback [http-nio-9102-exec-1] WARN o.s.h.c.j.MappingJackson2HttpMessageConverter 127 - Failed to evaluate Jackson deserialization for type [[simple type, class com.xxxx.common.ServiceResult<java.util.List<com.xxxx.base.entity.meta.MetaFieldEntity>>]]: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
14:49:18.208 logback [http-nio-9102-exec-1] ERROR c.xxxx.ice.util.ExceptionAdvice 45 - Could not extract response: no suitable HttpMessageConverter found for response type [com.xxxx.common.ServiceResult<java.util.List<com.xxxx.base.entity.meta.MetaFieldEntity>>] and content type [application/json]
feign.codec.DecodeException: Could not extract response: no suitable HttpMessageConverter found for response type [com.xxxx.common.ServiceResult<java.util.List<com.xxxx.base.entity.meta.MetaFieldEntity>>] and content type [application/json]at feign.AsyncResponseHandler.decode(AsyncResponseHandler.java:119)at feign.AsyncResponseHandler.handleResponse(AsyncResponseHandler.java:87)at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:138)at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:89)at feign.ReflectiveFeign$FeignInvocationHandler.invoke(ReflectiveFeign.java:100)at com.sun.proxy.$Proxy216.findColumnsByTableCode(Unknown Source)at com.xxxx.ice.service.impl.IndicatorServiceImpl.lambda$findTableColumns$57(IndicatorServiceImpl.java:1465)at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)at java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1556)at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)at java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291)at java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731)at java.util.concurrent.ForkJoinTask.doExec$$$capture(ForkJoinTask.java:289)at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java)at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1067)at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1703)at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:172)
Caused by: org.springframework.web.client.UnknownContentTypeException: Could not extract response: no suitable HttpMessageConverter found for response type [com.xxxx.common.ServiceResult<java.util.List<com.xxxx.base.entity.meta.MetaFieldEntity>>] and content type [application/json]at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:126)at org.springframework.cloud.openfeign.support.SpringDecoder.decode(SpringDecoder.java:75)at org.springframework.cloud.openfeign.support.ResponseEntityDecoder.decode(ResponseEntityDecoder.java:61)at feign.optionals.OptionalDecoder.decode(OptionalDecoder.java:36)at feign.AsyncResponseHandler.decode(AsyncResponseHandler.java:115)... 16 common frames omitted
分析:
服务提供方应该是没有问题,从错误提示看接口是联通的数据正常返回应该是在解析返回数据时出现解码异常
但具体原因未从错误信息看出,在网上也未查询到相关解决方法,无赖只能跟踪源码分析。
跟踪源码发现是缺少 java.lang.NoClassDefFoundError: org/springframework/beans/factory/aspectj/ConfigurableObject 类
进一步跟踪发现引入的服务提供方的实体类的父类引入
org.springframework.data.jpa.domain.support.AuditingEntityListener.class自动维护创建时间、更新时间、版本号等信息而该类需要依赖上面提到的 java.lang.NoClassDefFoundError: org/springframework/beans/factory/aspectj/ConfigurableObject 类
故引入maven依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
</dependency>
问题解决。
feign.codec.DecodeException异常解决方案相关推荐
- feign.codec.DecodeException 异常原因
原因: 数据是以json格式传输的,而feign内置fastjson,将得到的数据反序列化封装到接收的对象,要求该对象必须有无参构造. 解决: 对象加上无参构造
- feign.codec.DecodeException: Error while extracting response for type
报错信息 feign.codec.DecodeException: Error while extracting response for type [java.util.List<cn.xxx ...
- openfeign远程调用接口报错:feign.codec.DecodeException: Error while extracting response for type
错误信息: feign.codec.DecodeException: Error while extracting response for type [java.util.List<xxxx. ...
- 【feign】feign.codec.DecodeException: Could not extract response: no suitable HttpMessageConverter
问题描述 在springboot 2的版本中通过feign进行调用,在引入私服jar包并进行调用时,报错: feign.codec.DecodeException: Could not extract ...
- feign.codec.DecodeException: Could not extract response: no suitable HttpMessageConverter found
出错的代码: UserBaseDto lmsInfo = userBaseClient.getUserById(pointMqVo.getUserId(), pointMqVo.getPlatform ...
- 记一次feign调用报错:feign.codec.DecodeException: Error while extracting response for type [java...
弯路: 报错的内容就是feign被调用方返回的结果无法解析. 所以一直以为是被调用法的返回对象类型和调用方接收的对象类型不一致导致的解析失败,经检查字段完全一致: 又因为我们用了lombok,所以类上 ...
- feign.codec.DecodeException: Error while extracting response for type报错记录
今天在对一个老项目进行了微服务的拆分 用feign调用一个老服务的时候抛出了这样的异常 Error while extracting response for type [java.util.List ...
- error info: feign.codec.DecodeException: Could not extract response: no suitable HttpMessageConverte
使用feign框架的@FeignClient调用GET请求,并接受json返回值的时候,会报Could not extract response: no suitable HttpMessageCon ...
- Method threw ‘feign.codec.DecodeException‘ exception.
openFeign调用另一个微服务时出现这个问题 可以在被调用的服务添加配置 @Configuration public class WebMvcConfig extends WebMvcConfig ...
最新文章
- 阿里云高可用-容灾解决方案
- 配置基于Devstack的嵌套KVM虚拟化
- Oracle 创建数据表以及对数据表、字段、主外键、约束的操作
- WINCE---内核(kernel)---内存架构(memory archtitecture)学习
- PowerShell渗透工具Nishang
- mac系统及xcode使用的SVN客户端安装升级
- redis将散裂中某个值自增_0基础掌握Django框架(49)Redis
- 【Pytorch神经网络理论篇】 26 基于空间域的图卷积GCNs(ConvGNNs):定点域+谱域+图卷积的操作步骤
- webpack+react+redux+es6开发模式---续
- Linux笔记-给Linux配置DNS
- excel值false 显示否_Python数据分析包pandas中也有Excel的IF这么简单实用函数
- Enum,Int,String的互相转换 枚举转换
- R-CNN学习笔记2:Rich feature hierarchies for accurate object detection and semantic segmentation
- 为PDF批量添加书签
- 支付宝小程序登录PHP
- 华为HCNA网络工程师【从入门到精通】自学视频[肖哥]-肖宗鹏-专题视频课程
- 还在为图片转Excel而烦恼?6种转换方法让你3秒实现转换
- 生成式模型(VAE+GAN)
- ( SSD ; HHD ; HDD )
- 无线 WiFi 流量劫持