繁体   English   中英

使用名称创建 bean 时出错,并且不允许创建单例 bean

[英]Error creating bean with name and Singleton bean creation not allowed

通过JUnit 测试用例执行代码时出现以下异常

org.springframework.beans.factory.BeanCreationNotAllowedException:创建名为“somarFactory”的bean时出错:当该工厂的单例正在销毁时,不允许创建单例bean(不要在销毁方法实现中从BeanFactory请求bean!)

有人可以建议可能是什么问题吗?

检查您是否有多个 tomcat 的实例。
如果是这种情况,请关闭所有实例,然后打开一个且仅一个实例。
我希望这会帮助你

转到此线程

我假设你也有同样的问题..它通过设置JAVA_HOME路径并将你的 JDK 更新到版本 7 并尝试重新启动你的服务器来解决..(解决方案

我认为这可以解决你的问题..

就我而言,
我正在使用多个线程来调用 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM