[英]Spring boot with scheduler-BeanCreationNotAllowedException: Error creating bean with name 'entityManagerFactory': Singleton bean creation not allowed
[英]Error creating bean with name and Singleton bean creation not allowed
通过JUnit 测试用例执行代码时出现以下异常
org.springframework.beans.factory.BeanCreationNotAllowedException:创建名为“somarFactory”的bean时出错:当该工厂的单例正在销毁时,不允许创建单例bean(不要在销毁方法实现中从BeanFactory请求bean!)
有人可以建议可能是什么问题吗?
检查您是否有多个 tomcat 的实例。
如果是这种情况,请关闭所有实例,然后打开一个且仅一个实例。
我希望这会帮助你
就我而言,
我正在使用多个线程来调用 bean 方法
在完成所有线程之前
调用 context.close()
制造并抛出此异常
删除 context.close
我的问题解决了。
希望有用
我在集成测试中调试应用程序时遇到此错误,尝试从 Spring Data Repository 调用find
方法。
我的测试代码使用@Async
和@Scheduled
。 经过一番研究,我在我的 spring 集成测试中禁用了这两个功能,问题得到了解决。
在我的情况下,@ @Transactional
在使用它后解决了多个事务之间的事务冲突。
@Transactional(propagation = Propagation.REQUIRED, readOnly = false)
我正在使用 Spring Boot + Spring Data
如果您有一个在提供范围内但在运行时不可用的依赖项,您也可以获得此异常。
就我而言,我有:
<dependency>
<groupId>org.springframework.boot</groupId>-->
<artifactId>spring-boot-starter-tomcat</artifactId>-->
<scope>provided</scope>-->
</dependency>
在我的 pom.xml 中的一个新项目中。 我删除了它,现在它可以工作了。
我也有这个错误,但在我的情况下,我在错误消息的末尾发现,这与具有相同 @requestmapping 值的两个端点有关,我希望它有所帮助:)
在完成异步线程以测试方法运行之前完成测试时,我收到了该错误。
修复是为了确保在线程作业完成之前测试不会完成。
我真的不知道发生了什么! 我正在通过 VScode 在 Ubuntu 服务器上远程运行一个项目。 一切正常,直到我没有触摸它就得到这个错误。
我所做的是关闭远程 VScode 并再次连接。 繁荣! 它又开始工作了!
我知道回答这个问题可能无济于事。 如果有人来看这个,我只想分享我自己对这个错误的奇怪经历。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.