openfeign與gateway中的httpClient類聲明沖突


啟動spring cloud中的網關,報錯:

***************************
APPLICATION FAILED TO START
***************************

Description:

The bean 'httpClient', defined in class path resource [org/springframework/cloud/openfeign/ribbon/HttpClientFeignLoadBalancedConfiguration$HttpClientFeignConfiguration.class], could not be registered. A bean with that name has already been defined in class path resource [org/springframework/cloud/gateway/config/GatewayAutoConfiguration$NettyConfiguration.class] and overriding is disabled.

Action:

Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true

我用的網關是gateway,內部調用是用的openfeign,這兩者會沖突,上面報錯信息顯示httpClient在兩者都有聲明,要把兩者中一者去掉,於是看了下兩個類的源碼,可以把feign上的httpClient禁用了。

org/springframework/cloud/openfeign/ribbon/HttpClientFeignLoadBalancedConfiguration$HttpClientFeignConfiguration.class的代碼中有如下圖:


上面可以看出,可以配置:

feign.httpclient.enabled=false

或者

feign.compression.response.enabled=true

來禁用openfeign的httpClient類定義

也可以直接用配置:spring.main.allow-bean-definition-overriding=true 

原文地址:http://www.classinstance.cn/detail/53.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM