首页 > 其他分享 >Open Feign调用返回值失败: feign.codec.DecodeException: syntax error, pos 1

Open Feign调用返回值失败: feign.codec.DecodeException: syntax error, pos 1

时间:2023-09-12 16:44:45浏览次数:42  
标签:fastjson Feign java DecodeException com feign pos JSON SynchronousMethodHandler

【问题描述】

使用Open Feign调用第三方微服务的时候,可以找到对应的微服务和方法,只是在返回数据的时候报错了,具体报错信息如下:

2023-09-08 09:42:42.035 INFO 7 --- [http-nio-8233-exec-9] c.c.common.config.seata.FeignDecoder : feign调用响应:app-websocket-test
2023-09-08 09:42:42.036 ERROR 7 --- [http-nio-8233-exec-9] c.c.c.exception.GlobalExceptionHandler : /intelli-car-identify/zhgd/CarInfo:服务运行异常

feign.codec.DecodeException: syntax error, pos 1
at feign.SynchronousMethodHandler.decode(SynchronousMethodHandler.java:187)
at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:147)
at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:80)
at feign.ReflectiveFeign$FeignInvocationHandler.invoke(ReflectiveFeign.java:100)

............

Caused by: com.alibaba.fastjson.JSONException: syntax error, pos 1
at com.alibaba.fastjson.parser.DefaultJSONParser.parse(DefaultJSONParser.java:1295)
at com.alibaba.fastjson.parser.DefaultJSONParser.parse(DefaultJSONParser.java:1205)
at com.alibaba.fastjson.JSON.parse(JSON.java:108)
at com.alibaba.fastjson.JSON.parse(JSON.java:99)
at com.alibaba.fastjson.JSON.parseObject(JSON.java:170)
at com.cscecnf.common.config.seata.FeignDecoder.decode(FeignDecoder.java:32)
at feign.SynchronousMethodHandler.decode(SynchronousMethodHandler.java:183)
... 87 common frames omitted

 

【原因分析】

根据每个步骤的日志打印分析,调用第三方微服务及其方法并没有报错,只是在第三方返回数据的时候报错了;

基本可以判断的是微服务本身的方法都是可用的正常的,并且根据报错信息,是在解码的时候出现了异常。

feign.codec.DecodeException 异常表示在使用 OpenFeign 进行解码(反序列化)的响应时发生了异常,这种异常一般与响应内容的解析有关。

具体看了一下需要序列化和反序列化的WebSocketDTO对象,发现具体两个微服务中的WebSocketDTO对象都没有实现Serializable序列化接口。

 

【解决方法】

找到问题后,就好解决,分别在两个微服务中把WebSocketDTO对象都 implements Serializable接口。再次启动服务,调用成功返回了数据。

标签:fastjson,Feign,java,DecodeException,com,feign,pos,JSON,SynchronousMethodHandler
From: https://www.cnblogs.com/heyi-77/p/17697119.html

相关文章

  • android-解决 Android N 上 报错:android.os.FileUriExposedException
    我们使用手机的时候经常会看到应用程序提示升级,大部分应用内部都需要实现升级提醒和应用程序文件(APK文件)下载。一般写法都差不多,比如在启动app的时候,通过api接口获得服务器最新的版本号,然后和本地的版本号比较,来判断是否需要弹出提示框下载,当然也可以通过推送的自定义消息来实现......
  • SpringCloud:Feign实现微服务之间相互请求
    上篇文章说了通过RestTemplate实现微服务之间访问:https://blog.csdn.net/Ber_Bai/article/details/125460941,这篇文章将通过Feign实现微服务之间访问。代码基于RestTemplate实现微服务之间访问基础上进行修改。......
  • postgis如何判断要素的类型&判断要素的个数
    st_geometrytypeST_NumGeometries而ST_GeometryN是?参考:https://qastack.cn/gis/28835/changing-geometry-type-from-point-to-multipoint-within-existing-table-in-postgis......
  • OGG-Postgres实时同步到Kafka
    (一)数据同步信息名称源端名称目标端数据库类型Postgresql12.4组件类型KafkaIP地址20.2.127.23Broker地址20.2.125.52:9092,20.2.127.23:9092,20.2.127.24:9092端口5432端口9092数据库testpdbZookeeperHa......
  • 关于Kubernetes-v1.23-pod-生命周期-postStart-preStop-terminationGracePeriodSecond
    我们在一个pod的yaml配置文件中,有时会看到,terminationGracePeriodSeconds选项,与containers:同级,一般可以放于spec:下面即可是当pod,变为删除的状态后,会给pod一个宽限期,让pod去执行一些清理或者销毁操作另外还有两个选项,postStart,preStop,这两个是位于lifecycle,属于pod生命周期......
  • Apipost:API开发者的协同工作神器
    在当今快速发展的数字化时代,API已成为企业与开发者实现数据互通、应用集成的重要桥梁。然而,随着API数量的不断增加,API开发、调试、测试、文档等工作也变得越来越复杂。为了解决这一痛点,一款名为Apipost的API协同研发工具应运而生。成功案例许多知名的公司和团队都在使用Apipost。从......
  • Apipost:API开发者的协同工作神器
    在当今快速发展的数字化时代,API已成为企业与开发者实现数据互通、应用集成的重要桥梁。然而,随着API数量的不断增加,API开发、调试、测试、文档等工作也变得越来越复杂。为了解决这一痛点,一款名为Apipost的API协同研发工具应运而生。成功案例许多知名的公司和团队都在使用Apipost......
  • docker-compose 报错:ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+
    没有解决问题的操作wgethttps://www.openssl.org/source/openssl-1.1.1v.tar.gztar-zxvfopenssl-1.1.1v.tar.gzcdopenssl-*./config--prefix=/usr/local/ssl--openssldir=/usr/local/sslsharedmakesudomakeinstallecho"/usr/local/ssl/lib"|sudotee/e......
  • OGG-Postgres同步到MySQL
    (一)数据库信息名称源端数据库目标端数据库数据库类型Postgresql12.4MySQL5.7IP地址20.2.127.2320.2.127.24端口54323306数据库testpdbtest用户ogguserroot密码ogguserP2021Root@1234 postg......
  • Python的requests.post函数上传文件和其他数据
    当使用Python的requests.post函数时,可以在其中添加异常处理来捕获可能的网络错误或HTTP错误。以下是一个示例代码,演示如何使用try-except语句来处理requests.post可能抛出的异常:importrequestsurl='http://cbim.com/upload'files={'file1':('file1.txt',open('file1.t......