BeanFactory not initialized or already closed - call 'refresh' before accessing beans解决

迷南。 2022-02-13 05:25 339阅读 0赞

异常信息

  1. 信息: Initializing Spring root WebApplicationContext
  2. 四月 26, 2019 11:45:46 下午 org.apache.catalina.core.StandardContext listenerStart
  3. 严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
  4. org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 2 in XML document from file [C:\git\zydh\target\MavenDemo03\WEB-INF\classes\spring\spring-shiro.xml] is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 48; cvc-elt.1: 找不到元素 'ehcache' 的声明。
  5. at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:398)
  6. at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:335)
  7. at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:303)
  8. at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180)
  9. at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:216)
  10. at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:187)
  11. at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:125)
  12. at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94)
  13. at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:129)
  14. at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:540)
  15. at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:454)
  16. at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403)
  17. at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)
  18. at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106)
  19. at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4973)
  20. at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5467)
  21. at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
  22. at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
  23. at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
  24. at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:632)
  25. at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1740)
  26. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  27. at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  28. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  29. at java.lang.reflect.Method.invoke(Method.java:498)
  30. at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301)
  31. at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
  32. at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
  33. at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:618)
  34. at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:565)
  35. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  36. at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  37. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  38. at java.lang.reflect.Method.invoke(Method.java:498)
  39. at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301)
  40. at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
  41. at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
  42. at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1468)
  43. at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76)
  44. at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1309)
  45. at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1401)
  46. at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829)
  47. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  48. at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  49. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  50. at java.lang.reflect.Method.invoke(Method.java:498)
  51. at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:357)
  52. at sun.rmi.transport.Transport$1.run(Transport.java:200)
  53. at sun.rmi.transport.Transport$1.run(Transport.java:197)
  54. at java.security.AccessController.doPrivileged(Native Method)
  55. at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
  56. at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)
  57. at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
  58. at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683)
  59. at java.security.AccessController.doPrivileged(Native Method)
  60. at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
  61. at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
  62. at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
  63. at java.lang.Thread.run(Thread.java:748)
  64. Caused by: org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 48; cvc-elt.1: 找不到元素 'ehcache' 的声明。
  65. at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203)
  66. at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134)
  67. at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:396)
  68. at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
  69. at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:284)
  70. at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:1900)
  71. at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(XMLSchemaValidator.java:740)
  72. at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:374)
  73. at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:613)
  74. at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3132)
  75. at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:852)
  76. at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:602)
  77. at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112)
  78. at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:505)
  79. at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:841)
  80. at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:770)
  81. at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
  82. at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:243)
  83. at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:339)
  84. at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:76)
  85. at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadDocument(XmlBeanDefinitionReader.java:428)
  86. at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)
  87. ... 58 more
  88. 四月 26, 2019 11:45:46 下午 org.apache.catalina.core.ApplicationContext log
  89. 信息: Closing Spring root WebApplicationContext
  90. 四月 26, 2019 11:45:46 下午 org.apache.catalina.core.StandardContext listenerStop
  91. 严重: Exception sending context destroyed event to listener instance of class org.springframework.web.context.ContextLoaderListener
  92. java.lang.IllegalStateException: BeanFactory not initialized or already closed - call 'refresh' before accessing beans via the ApplicationContext
  93. at org.springframework.context.support.AbstractRefreshableApplicationContext.getBeanFactory(AbstractRefreshableApplicationContext.java:170)
  94. at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:921)
  95. at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:895)
  96. at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:841)
  97. at org.springframework.web.context.ContextLoader.closeWebApplicationContext(ContextLoader.java:579)
  98. at org.springframework.web.context.ContextLoaderListener.contextDestroyed(ContextLoaderListener.java:115)
  99. at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:5014)
  100. at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5659)
  101. at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
  102. at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:160)
  103. at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
  104. at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
  105. at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:632)
  106. at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1740)
  107. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  108. at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  109. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  110. at java.lang.reflect.Method.invoke(Method.java:498)
  111. at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301)
  112. at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
  113. at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
  114. at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:618)
  115. at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:565)
  116. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  117. at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  118. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  119. at java.lang.reflect.Method.invoke(Method.java:498)
  120. at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301)
  121. at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
  122. at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
  123. at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1468)
  124. at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76)
  125. at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1309)
  126. at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1401)
  127. at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829)
  128. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  129. at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  130. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  131. at java.lang.reflect.Method.invoke(Method.java:498)
  132. at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:357)
  133. at sun.rmi.transport.Transport$1.run(Transport.java:200)
  134. at sun.rmi.transport.Transport$1.run(Transport.java:197)
  135. at java.security.AccessController.doPrivileged(Native Method)
  136. at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
  137. at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)
  138. at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
  139. at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683)
  140. at java.security.AccessController.doPrivileged(Native Method)
  141. at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
  142. at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
  143. at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
  144. at java.lang.Thread.run(Thread.java:748)
  145. 四月 26, 2019 11:45:52 下午 org.apache.catalina.core.ApplicationContext log
  146. 信息: ContextListener: contextInitialized()
  147. 四月 26, 2019 11:45:52 下午 org.apache.catalina.core.ApplicationContext log
  148. 信息: SessionListener: contextInitialized()
  149. 四月 26, 2019 11:45:52 下午 org.apache.catalina.core.ApplicationContext log
  150. 信息: ContextListener: attributeAdded('org.apache.jasper.compiler.TldLocationsCache', 'org.apache.jasper.compiler.TldLocationsCache@326c5d95')

场景描述

ssm整合shiro,shiro添加ehcache配置的时候。


异常原因

我的

BeanFactory not initialized or already closed
大概猜到是bean注入错误被,看了下springmvc,shiro的配置文件,发现是我把ehcache的配置 复制错到shiro里面了,导致不能加载正确的bean。

还有可能是

启用注解时,
applicationContext.xml文件头部需要加入

xmlns:context=“http://www.springframework.org/schema/context”

但是接着会报错误在这里插入代码片

BeanFactory not initialized or already closed - call ‘refresh’ before access

原因是还要在bean头文件中加入http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-2.5.xsd

  1. <beans xmlns="http://www.springframework.org/schema/beans"
  2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xmlns:aop="http://www.springframework.org/schema/aop"
  4. xmlns:tx="http://www.springframework.org/schema/tx"
  5. xmlns:context="http://www.springframework.org/schema/context"
  6. xsi:schemaLocation="
  7. http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsd
  8. http://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-3.0.xsd
  9. http://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-3.0.xsdx
  10. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
  11. <context:annotation-config/>

bean头文件配置
https://blog.csdn.net/u010417178/article/details/52681232

  1. 1.我创建的是web工程,在web.xml中将contextConfigLocation改成<param-value>classpath:***.xml</param-value>即可;(***是你Bean的配置文件名);
  2. 2.如果创建的不是web工程,则可能是如下产生的错误:
  3. ApplicationContext ctx = new ClassPathXmlApplicationContext();
  4. 没有指定Bean配置文件,Spring实例化BeanFactory的时候默认到classPath下面查找名为applicationContext.xml的文件的,如果没有指定配置文件,则会报错。
  5. 改成:ApplicationContext ctx = new ClassPathXmlApplicationContext("***.xml"); (***是你指定的配置文件的名字)。
  6. 然后可以成功运行程序。

https://blog.csdn.net/zr_1877/article/details/78653849

解决方案


参考资料

这里是引用

发表评论

表情:
评论列表 (有 0 条评论,339人围观)

还没有评论,来说两句吧...

相关阅读