BeanCreationException ISysClientFallback 找不到

Blade 未结 1 88
154879594
154879594 2024-11-01 11:05

一、该问题的重现步骤是什么?

1. 请求 oauth/token 的时候

2. 代码进入 getTenant 然后在 getSysClient() 报的错

SpringUtil.getBean(ISysClient.class)

3.


二、你期待的结果是什么?实际看到的又是什么?

不报错,能找到bean, 现在报了org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springblade.system.feign.ISysClient': FactoryBean threw exception on object creation


三、你正在使用的是什么产品,什么版本?在什么操作系统上?

BladeX 4.1.0版本, windows


四、请提供详细的错误堆栈信息,这很重要。

@78RU96J@`EMC5P%K)5(SA0.png

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

在这个类

E[MTEM@VXX555LDGUMNV~WP.png

1条回答
  •  admin
    admin (楼主)
    2024-11-01 11:45

    请问用的是bladex在git私服的原版么,有没有加过其他的配置或者移动过bean的类。我们本地启动是这样的,可以获取到bean。

    CleanShot20241101114445@2x.png



    作者追问:2024-11-01 11:45

    对,从你们git私服原本的。没有移动过bean的类,也没改框架原本代码。又重新拉你们git私服比对了这几个类跟在我本机的代码一致

    作者追问:2024-11-01 11:45

    image.png把断点打进去是报了这个错,已经确认项目里是有这个类的并且跟私服的一摸一样

    回答: 2024-11-01 11:45

    在blade-auth服务的AuthApplication和blade-system服务的SystemApplication上加注解(@ComponentScan({"org.springblade"}))再启动试试

    @ComponentScan({"org.springblade"})
    @EnableRedisHttpSession
    @BladeCloudApplication
    public class AuthApplication {
    
        public static void main(String[] args) {
           BladeApplication.run(AppConstant.APPLICATION_AUTH_NAME, AuthApplication.class, args);
        }
    
    }
    @ComponentScan({"org.springblade"})
    @BladeCloudApplication
    public class SystemApplication {
    
        public static void main(String[] args) {
           BladeApplication.run(AppConstant.APPLICATION_SYSTEM_NAME, SystemApplication.class, args);
        }
    
    }



    作者追问:2024-11-01 11:45

    我在这里打上断点,重启system服务的时候会被init,所以为什么还需要单独添加一个 compontscan 注解,

    还有BladeCloudApplication我看已经实现了

    SpringBootApplication  ComponentScan   是被过滤了么?


    image.png


    回答: 2024-11-01 11:45

    你给Application加上@ComponentScan({"org.springblade"}),然后把fallback的注解改回@Component(其他有改动的地方也先恢复一下),启动后再调用看看有没有报错。

    CleanShot20241101124132@2x.png

    0 讨论(1)
提交回复