前言:
之前用的bladex-tool的版本还是19年的了,spring-boot的版本还是2.1.7。刚好redis缓存那块想升级一下,就用最新版的bladex-tool来进行了相关的升级(主要还是 自己手痒,觉得最新版的高级些)。主要包括spring-boot升级到2.1.16. nacos升级到2.1.2. spring-cloud升级到Greenwich.SR6
因为我自己改造过bladex-tool,所以就根据最新版的手动移植相关代码到本地。一阵捣鼓之后,项目没有报错了。然后我开心的做1个测试用例:调用feign client的时候 发现直接就报错了。
第一反应是升级包哪里不兼容,就一个个排查呗。然后事情并非想象的那么顺利,我一个个恢复到原来版本,依然没发现问题。最后发现是okhttp版本的问题。我今天花了至少5个小时找到了问题。但是却不清楚是什么原因。特来发帖求助。
一、该问题的重现步骤是什么?
1. 在调用feign client的时候,直接获取到null值。但是被调用方是被调用了的。直观体现为调起方没有等待返回值就往下执行了
二、你期待的结果是什么?实际看到的又是什么?
期待调起方能获取到返回的值
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
和目前最新版bladex-tool版本一致
spring-boot2.1.16 nacos 2.1.2 springcloud Greenwich.SR6
在windows上
四、请提供详细的错误堆栈信息,这很重要。
我在排查的时候,分别恢复了spring-boot版本 nacos版本 spring-cloud的版本到旧版本。依然出现这个问题。
然后我仔细查看日志。发现没升级前的版本在调用时的日志为 如下图
但是在升级后的日志 没有这两项出现。如下图:
无奈之下,觉得有一丁点可能是okhttp的问题,尝试把OKHTTP的版本由 3.14.5 回退到之前的3.8.1。然后执行测试用例,发现居然可以了。。。。。。
虽然是正常了,但是依然不清楚为何最新版bladex-tool没有此问题。我也确实把blade-core-cloud里的文件都一个一个对照看了,没有差别。特来求助。谢谢
五、若有更多详细信息,请在下面提供。
扫一扫访问 Blade技术社区 移动端