java学习之路

fUnsatisfied dependency expresse

2021-11-16  本文已影响0人  唯有努力不欺人丶

记录一次报错:

Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'basePermissionClientImpl': Unsatisfied dependency expressed through field 'baseProxy'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.byt.mc.logistics.permission.BaseProxy' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
2021-11-16 09:24:11.540  WARN [TID: N/A] s.c.a.AnnotationConfigApplicationContext [1016] : Exception thrown from ApplicationListener handling ContextClosedEvent

org.springframework.beans.factory.BeanCreationNotAllowedException: Error creating bean with name 'rabbitConnectionFactory': Singleton bean creation not allowed while singletons of this factory are in destruction (Do not request a bean from a BeanFactory in a destroy method implementation!)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:212)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:207)
    at org.springframework.context.event.AbstractApplicationEventMulticaster.retrieveApplicationListeners(AbstractApplicationEventMulticaster.java:245)
    at org.springframework.context.event.AbstractApplicationEventMulticaster.getApplicationListeners(AbstractApplicationEventMulticaster.java:197)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:134)
    at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:404)
    at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:410)
    at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:361)
    at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1013)
    at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:979)
    at org.springframework.cloud.context.named.NamedContextFactory.destroy(NamedContextFactory.java:92)
    at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:258)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:579)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:551)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:1092)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:512)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:1085)
    at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1061)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:564)
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143)
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:758)
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:750)
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:315)
    at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:140)
    at com.in.launch.InApplication.run(InApplication.java:44)
    at com.byt.mc.logistics.BytLogisticsApplication.main(BytLogisticsApplication.java:25)

2021-11-16 09:24:11.546  WARN [TID: N/A] s.c.a.AnnotationConfigApplicationContext [1016] : Exception thrown from ApplicationListener handling ContextClosedEvent

其实这个错我之所以记录一下是真的很有迷惑性。后面不断重复这个 Error creating bean with name 'rabbitConnectionFactory': Singleton bean creation not allowed while singletons of this factory are in destruction。也就是说看似报错是这个rabbitConnectionFactory。
但是其实本质是第一个错:BaseProxy创建失败。因为是人家开发完了才接手的项目,所以这个问题找了很久的bug。最终发现原因很简单:
我这里的BaseProxy是feign调用,但是在扫描项目的时候这个类的包不在扫描路径下。


feign的扫描路径

由此我又做了一些测试:
如果在非mapper扫描路径下的mapper(并且不加@Mapper注释),也会报这个错:

Unsatisfied dependency expressed through field 'baseMapper'

至于后面的都是这个问题的衍生,所以暂时不用管。

这是一个我第一次遇到的报错,所以简单记录一下,希望以后可以遇到既解决!~

上一篇 下一篇

猜你喜欢

热点阅读