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.destroyBeans(AbstractApplicationContext.java:921)
at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:895)
at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:841)
at org.springframework.web.context.ContextLoader.closeWebApplicationContext(ContextLoader.java:579)
at org.springframework.web.context.ContextLoaderListener.contextDestroyed(ContextLoaderListener.java:115)
at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4858)
其實可以不用用到這個工具類,在需要
getBean
的类注入一个ApplicationContext
即可。雷雷
樓主的專案根本沒啟動成功吧,應該還有其它的錯誤訊息。仔細看上面的堆疊
listenerStop
->closeWebApplicationContext
這個錯誤是在停止Tomcat的時候發生的錯誤。將datasource.xml中xsi補全了就好了。