解决java.lang.IllegalStateException: BeanFactory not initialized or already closed

摘要:
这可以通过以下方式解决:1.向构造函数参数添加以下起点:classpath:2.或者将配置文件发布到输出目录下的idea。更改文件-˃项目结构-˃项目设置-˃模块-˃项目名称-˃右侧路径-˃Compileroutput

使用ClassPathXmlApplicationContext加载项目时,

            ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring/application.xml");
            context.start();

发生以下错误:

java.lang.IllegalStateException: BeanFactory not initialized or already closed - call 'refresh' before accessing beans via the ApplicationContext

    at org.springframework.context.support.AbstractRefreshableApplicationContext.getBeanFactory(AbstractRefreshableApplicationContext.java:170)
    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1078)
    at cn.lzj.service.UserServiceTest.testAdd(UserServiceTest.java:50)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
    at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
    at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:117)
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:42)
    at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:262)
    at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:84)

其实,就是因为参数中的配置文件在发布目录下没有。

这是可以这样解决:

1. 在构造函数的参数增加如下开头:

    classpath:

2. 或者将配置文件发布到输出目录下

    idea中输出目录在,更改File->Project Structure->Project Settings->Modules->项目名称->右侧的Paths->Compiler output

    解决java.lang.IllegalStateException: BeanFactory not initialized or already closed第1张

免责声明:文章转载自《解决java.lang.IllegalStateException: BeanFactory not initialized or already closed》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Tornado安装centos 内存清理下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

面试官说“一开始工资不会给你太高,你可以接受吗?” 怎么怼回去??

面试官:一开始工资不会给你太高,你可以接受吗? 程序员:我一开始工作表现不会太好,你可以接受吗? 面试官:emmmmmm 面试官:“你简历上写着说你心算速度很快,那我问问你,十九乘以十七是多少?” 程序员脱口而出:“三十六!” 面试官:“这也差太远了吧。” 程序员:“但是很快没错吧。” ----我是分割线,重点看下面---- draft_job应用...

Java高级框架-----Spring(一)

一: 1.Spring几大核心功能: IOC/DI 控制反转/依赖注入 AOP 面向切面编程 声明式事务 2.Spring 框架的的runtime 2.1test:Spring提供测试功能 2.2Core Container:核心容器。Spring启动最基本条件 2.2.1Beans:Spring负责创建类对象并管理对象 2.2.2Core:核心类 2.2...

java web定时任务---quartz

写在前面:   前面有简单的记录下Timer定时的用法,但是在此次项目中,选择的是quartz来完成定时操作任务的。两者都可以完成定时操作,但是spring可以整合quartz,并且配置起来也比较简便,还可以同时跑多个任务。就选择了quartz,quartz的用法也很强大,这里也是简单的记录下。   第一步还是需要写自己的任务类,如果有涉及到对数据库的增删...

spring自动注入的三种方式

所谓spring自动注入,是指容器中的一个组件中需要用到另一个组件(例如聚合关系)时,依靠spring容器创建对象,而不是手动创建,主要有三种方式: 1. @Autowired注解——由spring提供 2. @Resource注解——由JSR-250提供 3. @Inject注解——由JSR-330提供   @Autowired注解的使用方法 @Tar...

Error creating bean with name 'org.springframework.aop.support.DefaultBeanFactoryPointcutAdvisor#0': Initialization of bean failed; nested exception is java.lang.NoSuchMethodError: org.springframework

  昨晚在 使用spring aop, 然后Tomcat启动的时候, 报了这么个错:    Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.aop.support.De...

泛型依赖注入出现required a single bean, but 2 were found

问题描述 项目使用了tkmybatis,然后在service层使用泛型抽取了公共的CRUD操作,结果在Controller层注入的时候提示 Field dao in com.gisquest.mmp.server.api.service.impl.BaseServiceImpl required a single bean, but 2 were foun...