原因是合了同事的代码后,自己的模块启动不了了,但是其他模块都正常启动。折腾一早上,百度和GPT都不能很好的解决我的问题,终于解决了这个问题,记录一下分析问题的过程,最下面是省流版。
文章目录
报错信息如下:
Unexpected exception during bean creation; nested exception is java.lang.IllegalStateException: No bean found of type interface feign.codec.Encoder for areaControllerClient
ai分析的 结果
这个错误提示显示在启动Spring Cloud时出现了问题,具体是在创建bean时抛出了异常,异常信息显示找不到类型为feign.codec.Encoder的接口的bean。解决这个问题可以考虑以下几个方面:
- 检查是否存在该接口的实现类并且已经被正确地注入到Spring容器中。
- 检查是否存在版本冲突或者依赖缺失等问题导致该接口无法被正确加载。
- 检查是否在使用feign进行服务调用时出现了错误,例如请求参数不正确等。
希望这些提示能够帮助您解决问题。
实际的临时解决方案:
根据启动的报错信息,发现下面的三个类在注入容器时报错,注释掉对应的代码后正常启动

这三个类有一个共同的点:都注入了feign的客户端bean



如上图注解掉后,项目启动正常。
归因推测
-
出现时间:在和主分支合并之后出现问题
-
问题情况,只有资源模块启动报错,其他的模块(附件、系统模块)注入feign客户端正常,且不会报错(测试没问题。并且feign的实体存在

-
三个报错的代码模块都在是api模块内
推测一:api模块的bean注入都出现了问题
在resources模块,测试如下:

确实是取不到这个工具。
但是,如果在system模块测试呢——> 成功了,奇怪的是,在系统模块内可以正常找到(不影响启动

验证结果:资源模块在注入api模块的bean时出了问题,推测是没有扫描?
推测二:资源模块没有扫描api模块的bean
在api模块下创建一个新的bean

验证结果:验证失败,资源模块api模块下的bean其实正常扫描并注入了。其实既然会报错也可以知道,肯定是有扫描到api模块的bean 的

推测三:资源模块的feign配置出问题了,导致feign的client注入都有问题
在系统模块(正常环境)下获

文章讲述了作者在集成同事代码后遇到SpringCloud应用启动失败的问题,主要围绕Feign的bean注入错误展开,通过排查发现是由于配置文件中存在重复的Encoder类导致。作者提供了详细的错误分析和解决步骤。
最低0.47元/天 解锁文章
1512

被折叠的 条评论
为什么被折叠?



