关于升级bladex-tool 2.6.0.RELEASE后 feign 调用 都返回null的问题

Blade 未结 2 1753
bluerose
bluerose 2020-08-27 18:45
悬赏:5

前言:

之前用的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的版本到旧版本。依然出现这个问题。

然后我仔细查看日志。发现没升级前的版本在调用时的日志为 如下图

image.png


但是在升级后的日志 没有这两项出现。如下图:

image.png


无奈之下,觉得有一丁点可能是okhttp的问题,尝试把OKHTTP的版本由 3.14.5 回退到之前的3.8.1。然后执行测试用例,发现居然可以了。。。。。。

虽然是正常了,但是依然不清楚为何最新版bladex-tool没有此问题。我也确实把blade-core-cloud里的文件都一个一个对照看了,没有差别。特来求助。谢谢


五、若有更多详细信息,请在下面提供。

2条回答
  •  smallchill
    smallchill (楼主)
    2020-08-27 19:11

    说实话这个我也帮不上太大的忙,看你的描述就是版本跨越太大,仅仅做了局部更新。更新完毕发现的问题。

    因为版本跨越的多,说不定里面就会由于某个小细节或者是自己改动tool工程后导致的问题。

    对于这种情况只能靠细心对比了,实在不行就强制把okhttp改成3.8.1

提交回复