Error creating bean with name ‘eurekaClientConfigBean’: Singleton bean creation not allowed!

做一个积极的人编码、改bug、提升自己我有一个乐园,面向编程,春暖花开!今天发现一个错误,简单记录一下,运行一个项目一直启动不了,发现控制台报错了。首先说明一下这是一个Spring boot 集成Quartz做任务调度的项目,版本信息就不贴了,因为和本文最终的解决方案没有什么关系。错误信息如下:2019-09-05 09:56:23.993 WARN [web-scheduler…

大家好,又见面了,我是全栈君。

做一个积极的人

编码、改bug、提升自己

我有一个乐园,面向编程,春暖花开!

今天发现一个错误,简单记录一下,运行一个项目一直启动不了,发现控制台报错了。

首先说明一下这是一个Spring boot 集成Quartz做任务调度的项目,版本信息就不贴了,因为和本文最终的解决方案没有什么关系。

错误信息如下:

2019-09-05 09:56:23.993  WARN [web-scheduler-localhost,,,] 5324 --- [ender@21a0676f}] s.c.a.AnnotationConfigApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'eurekaRibbonClientConfiguration': Unsatisfied dependency expressed through field 'clientConfig'; nested exception is org.springframework.beans.factory.BeanCreationNotAllowedException: Error creating bean with name 'eurekaClientConfigBean': 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!)
2019-09-05 09:56:23.997  INFO [web-scheduler-localhost,,,] 5324 --- [           main] o.apache.catalina.core.StandardService   : Stopping service [Tomcat]
2019-09-05 09:56:24.003  WARN [web-scheduler-localhost,,,] 5324 --- [ost-startStop-1] o.a.c.loader.WebappClassLoaderBase       : The web application [ROOT] appears to have started a thread named [RxIoScheduler-1 (Evictor)] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
 sun.misc.Unsafe.park(Native Method)
 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
 java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
 java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
 java.lang.Thread.run(Thread.java:745)

根据平时的看错误经验:

Error creating bean with name 'eurekaRibbonClientConfiguration': Unsatisfied dependency expressed through field 'clientConfig'; nested exception is org.springframework.beans.factory.BeanCreationNotAllowedException: Error creating bean with name 'eurekaClientConfigBean': 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!)

错误不就是这个吗,但事实貌似不是这样,排查代码和配置,没有发现代码和配置有任何的问题。

于是就耐心看整个启动日志的输出,发现在了下面这一句异常(控制台上 这一句异常信息和其他日志一样,没有任何突出之处)。

Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'quartzScheduler' defined in class path resource [org/springframework/boot/autoconfigure/quartz/QuartzAutoConfiguration.class]: 
Invocation of init method failed; 
nested exception is org.quartz.JobPersistenceException: Couldn't retrieve job: Table 'xyz.QRTZ_JOB_DETAILS' doesn't exist 
[See nested exception: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'xyz.QRTZ_JOB_DETAILS' doesn't exist]

从这句异常Error creating bean with name 'quartzScheduler' defined in class path resource之后发现容器开始关Quartz线程开始停止,容器也开始关闭。那分析就是这句异常导致服务不能重启的。上面的那个异常不是罪魁祸首,而是受害者。

知道了核心问题那就开始解决吧。Couldn't retrieve job: Table 'xyz.QRTZ_JOB_DETAILS' doesn't exist ,看出是xyz库中没有QRTZ_JOB_DETAILS,这个表,于是我打开navicat,连上数据库打开xyz ,发现这个QRTZ_JOB_DETAILS是存在的,只不过是小写,不是日子提示的大写。

这种情况我立马想到之前整理的过一篇文章,不是它嘛。一个因MySQL大小写敏感导致的问题

到这里 这个问题就结束了,我之所以记录这篇文章:

有一些错误,能够通过提示就找到原因。这个错误就是罪魁祸首。
而有一些错误,它只是受害者。而真正的错误原因隐藏在另一个地方。需要耐心寻找并发现它!

希望遇到类似情况的伙伴看到这篇能够有所收获。 peace&love

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/121001.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • php Restful设计

    php Restful设计

    2021年10月22日
    56
  • php 数组转字符串拼接 字符串转数组分割

    php 数组转字符串拼接 字符串转数组分割1 join implode 函数拆解数组为字符串 lt php arr array hello world str join arr implode 函数相同效果 echo str 输出 hello world gt 2 explode 函数指定字符分割字符串为数组 lt

    2025年7月5日
    2
  • Python快速编程入门课后习题答案「建议收藏」

    Python快速编程入门课后习题答案「建议收藏」文章目录前言第一章一、填空题二、判断题三、选择题四、简答题第二章一、填空题二、判断题三、选择题四、简答题第三章一、填空题二、判断题三、选择题四、简答题第四章一、单选题二、判断题三、填空题四、程序分析题第五章一、选择题二、判断题三、填空题四、简答题五、程序分析题第六章一、单选题二、判断题三、填空题四、简答题五、程序分析题第七章一、单选题二、判断题三、填空题四、简答题五、程序分析题第八章一、单选题二、…

    2022年6月3日
    157
  • 从零开始学习EasyDarwin(概述篇)

    EasyDarin是什么  EasyDarwin是由国内开源流媒体团队维护的一款开源流媒体平台框架,从2012年12月创建并发展至今,从原有的单服务的流媒体服务器形式,扩展成现在的云平台架构的开源项目,更好地帮助广大流媒体开发者和创业型企业快速构建流媒体服务平台。EasyDarwin适合做什么  安防视频监控,移动互联网(安卓、IOS、微信)流媒体直播与点播,流媒体视

    2022年4月5日
    45
  • Informatica ETL开发入门实例

    Informatica ETL开发入门实例Informatica客户端工具:5个Designer——定义源及目标结构设计转换规则,生成ETL映射RepositoryManager——元数据资料库,依赖性分析,安全性管理等RepositoryServerAdministratorConsole——Repository的建立与维护WorkflowManager——合理的实现复杂的ETL工作流基于时间或事件的作业高度WorkflowMonitor——监控workflow和session,生成工作日志及报告…

    2022年6月11日
    36
  • vs中快速注释快捷键_VS2010快捷键

    vs中快速注释快捷键_VS2010快捷键选中需要注释的代码段,按Ctrl+K+C即可快速注释;选中需要取消注释的代码段,按Ctrl+K+U即可取消注释。

    2022年8月15日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号