当我通过JUnit测试用例执行代码时,出现以下异常:
org.springframework.beans.factory.BeanCreationNotAllowedException: 创建名为'somarFactory'的bean时出错:在该工厂的单例处于销毁状态时不允许创建单例(不要在销毁方法实现中从BeanFactory请求bean!)
请问可能有什么问题?
检查是否有多个Tomcat实例。
如果是这种情况,请关闭所有实例,然后只打开一个实例。
希望这能帮助你。
JAVA_HOME
和JDK到1.7解决了问题。这也在我参考的链接中提到了。 :) - Luckyhttp://forums.alfresco.com/forum/installation-upgrades-configuration-integration/installation-upgrades/singleton-bean-creation
无法打开。 - Jeff Tian在我的情况下,我使用多个线程来调用bean方法,在所有线程都完成之前调用context.close()会抛出此异常。移除context.close后,我的问题得到解决。希望对您有所帮助。
在我的集成测试中,我在调用Spring Data Repository的find
方法时遇到了这个错误。
我的测试代码使用了@Async
和@Scheduled
。经过一番研究后,我禁用了这两个功能,问题得到了解决。
@Transactional
解决了多个事务之间的事务冲突。@Transactional(propagation = Propagation.REQUIRED, readOnly = false)
我正在使用Spring Boot + Spring Data
@Transactional
究竟是如何解决你的问题的?你把这个注解放在了哪里? - Arthur我真的不知道发生了什么!我通过VScode在Ubuntu服务器上远程运行一个项目。一切正常工作,直到我没有操作就出现了这个错误。
我所做的就是关闭远程VScode并重新连接。嘭!它又可以工作了!
我知道这可能对回答这个问题没有帮助。只是想分享一下我自己在这个错误上的奇怪经历,如果有人看到这个的话。
我也遇到过这个错误,但在我的情况下,我发现在错误消息的末尾,有两个端点具有相同的@requestmapping值,希望能对你有所帮助 :)
当测试方法完成之前,异步线程运行的时候,我遇到了这个错误。
解决方法是确保在线程工作完成之前,测试不会结束。