SpringBoot整合OpenFeign的坑怎么解决


本文小编为大家详细介绍“SpringBoot整合OpenFeign的坑怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“SpringBoot整合OpenFeign的坑怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。首先,我先跟大家说下项目的配置,整体项目使用的SpringBoot版本为2.2.6,原生的OpenFegin使用的是11.0,我们通过如下方式在pom.xml中引入OpenFegin。这里,我省略了一些其他的配置项。接下来,我就开始在我的项目中使用OpenFegin调用远程服务了。具体步骤如下。首先,创建OpenFeignConfig类,配置OpenFegin默认使用的Contract。接下来,我们写一个通用的获取OpenFeign客 香港云主机户端的工厂类,这个类也比较简单,本质上就是以一个HashMap来缓存所有的FeginClient,这个的FeginClient本质上就是我们自定义的Fegin接口,缓存中的Key为请求连接的基础URL,缓存的Value就是我们定义的FeginClient接口。接下来,我们就定义一个FeginClient接口。接下来,我们创建SpringBoot的测试类。一切准备就绪,运行测试。麻蛋,出问题了。主要的问题就是通过OpenFeign请求返回值LocalDateTime字段会发生异常!!!注:此时异常时,我们在LocalDateTime字段上添加的注解如下所示。SpringBoot通过原生OpenFeign客户端调用HTTP接口,如果返回值中包含LocalDateTime类型(包括其他JSR-310中java.time包的时间类),在客户端可能会出现反序列化失败的错误。错误信息如下:Caused by:com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `java.time.LocalDateTime` (no Creators, like default construct, exist): no String-argument constructor/factory method to deserialize from String value (“2020-10-07T11:04:32”)
从客户端调用fegin,也是相当于URL传参就相当于经过一次JSON转换,数据库取出‘2020-10-07T11:04:32″数据这时是时间类型,进过JSON之后就变成了String类型,T就变成了字符不再是一个特殊字符,因此String的字符串“2020-10-07T11:04:32”反序列化就会失败。在项目中增加依赖。注:如果是用的是SpringBoot,并且明确指定了SpringBoot版本,引入jackson-datatype-jsr310时,可以不用指定版本号。接下来,在POJO类的LocalDateTime类型字段增加如下注解。添加后的效果如下所示。此时,再次调用远程接口,问题解决。
读到这里,这篇“SpringBoot整合OpenFeign的坑怎么解决”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注开发云行业资讯频道。

相关推荐: win7系统中怎么打开dat文件

小编给大家分享一下win7系统中怎么打开dat文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.双击打开“我的电脑”,然后再打开 香港云主机硬盘C。其实硬盘C里面可以找到很多的d…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 07/14 22:11
下一篇 07/14 22:11

相关推荐