当我的Grails WAR被热部署到Tomcat并刷新页面时,我收到此错误:
2010年2月1日下午7:00:51 org.apache.catalina.core.ApplicationDispatcher调用 严重:servlet view-servlet的Servlet.service()引发了异常 java.lang.IllegalStateException:BeanFactory未初始化或已经关闭 - 在通过ApplicationContext访问bean之前调用'refresh' 在org.springframework.context.support.AbstractRefreshableApplicationContext.getBeanFactory(AbstractRefreshableApplicationContext.java:15
重新启动Tomcat时,此错误不会保留。
答案 0 :(得分:0)
ApplicationContext ctx = new ClassPathXmlApplicationContext();
Spring尝试从CLASSPATH查找applicationContext.xml,如果找不到xml文件,“BeanFactory未初始化或已经关闭”错误将被抛出。这就是为什么你重启tomcat它工作得很好。但是,我不知道在热部署期间applicationContext.xml不在类路径中的真正原因。
如果您在tomcat中只运行一个Grails应用程序,则可以尝试将applicationContext.xml放在Tomcat类路径中并再次尝试热部署。