2010-02-01 79 views
3

当我的Grails WAR被热部署到Tomcat和我刷新页面,我得到这个错误:“所说的‘刷新’”从Grails的战争所造成的错误热部署

1 Feb, 2010 7:00:51 PM org.apache.catalina.core.ApplicationDispatcher invoke SEVERE: Servlet.service() for servlet view-servlet threw exception 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:15

此错误不会持续当Tomcat重新启动时。

+1

无法帮助您处理servlet错误,但我可以告诉您,它与页面中的Javascript没有任何关系。 Java领域有些问题。 – 2010-02-01 15:07:39

+0

在此之前应该有另一个堆栈跟踪 – Bozho 2011-08-21 15:22:04

回答

0

ApplicationContext ctx = new ClassPathXmlApplicationContext();

Spring尝试从CLASSPATH中查找applicationContext.xml,如果找不到xml文件,“BeanFactory未初始化或已关闭”错误将被抛出。这就是为什么你重新启动tomcat它工作得很好。不过,我不知道为什么在热部署期间applicationContext.xml不在类路径中的真正原因。

如果您在tomcat中只运行一个Grails应用程序,则可以尝试将applicationContext.xml放入Tomcat类路径中,然后再次尝试热部署。