2010-02-01 80 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類路徑中,然後再次嘗試熱部署。