BeanFactory未初始化或已关闭

时间:2012-08-30 18:01:52

标签: java eclipse spring-mvc spring-security tomcat6

抱歉我的英文。我使用Eclipse 3.7,在spring-mvc上运行网络应用(spring-secirity + tomcat6),但会发生下一个错误:

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:172)
    at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1071)
    at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1045)
    at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:993)
    at org.springframework.web.context.ContextLoader.closeWebApplicationContext(ContextLoader.java:548)
    at org.springframework.web.context.ContextLoaderListener.contextDestroyed(ContextLoaderListener.java:142)
    at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4245)
    at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4886)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4750)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
    at org.apache.catalina.core.StandardService.start(StandardService.java:525)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)

有人可以帮我吗?

2 个答案:

答案 0 :(得分:4)

在处理使用Spring 3.0.6并在JBoss中运行的项目之前,我已经看过此堆栈跟踪。

当我看到这一点时,它不可避免地与数据库连接或权限问题一起发生。

以下是另一位遇到此问题的开发人员,它也与数据库的通信有关:How can I cope with “IllegalStateException: BeanFactory not initialized or already closed”?

此线程上还有另一位开发人员评论说他有一个类似的异常,而他的错误是Spring安全配置文件引起的。

此外,您可能想要检查放置Spring JAR的位置。以下是相关帖子:Spring Tomcat issue

最后,某些版本的应用程序服务器中的错误可能是由应用程序服务器中的错误引起的。这是SpringSource forums regarding a bug in Weblogic 9.2 MP2上的帖子。这是另一篇文章regarding a bug in a particular version of jbossws

祝你好运,希望这会有所帮助。

答案 1 :(得分:0)

上述解决方案是精确准确的解决方案。但是有时也会遇到与BeanFactory not initialized or already closed相关的相同问题 ...在应用解决方案后仍然存在。在这种情况下,您应该尝试清理您的tomcat目录。删除您的目标文件夹并重建您的工件。

此解决方案适用于大多数罕见的BeanFactory问题,但频率较低,可以按照我提到的方式解决。