通过JUnit 测试用例执行代码时出现以下异常
org.springframework.beans.factory.BeanCreationNotAllowedException:创建名为“somarFactory”的bean时出错:当该工厂的单例正在销毁时,不允许创建单例bean(不要在销毁方法实现中从BeanFactory请求bean!)
有人可以建议可能是什么问题吗?
检查您是否有多个 tomcat 的实例。
如果是这种情况,请关闭所有实例,然后打开一个且仅一个实例。
我希望这会帮助你
在我的情况下,
我使用多个线程来调用 bean 方法
,并且在完成所有
调用 context.close()的线程之前
,
通过删除 context.close
我的问题解决了。
希望有用
在我的集成测试中调试应用程序时,我遇到了这个错误,试图find
从 Spring Data Repository 调用一个方法。
我的测试代码正在使用@Async
and @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 值的两个端点有关,我希望它有所帮助:)
在完成异步线程以测试方法运行之前完成测试时,我收到了该错误。
修复是为了确保在线程作业完成之前测试不会完成。