【问题标题】:"call 'refresh'" error resulting from Grails WAR hot-deployGrails WAR 热部署导致的“调用‘刷新’”错误
【发布时间】:2010-02-01 15:05:12
【问题描述】:

当我的 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 之前调用“刷新” 在 org.springframework.context.support.AbstractRefreshableApplicationContext.getBeanFactory(AbstractRefreshableApplicationContext.java:15

Tomcat 重新启动后,此错误不会持续存在。

【问题讨论】:

  • 无法帮助您解决 servlet 错误,但我可以告诉您它与您页面中的 Javascript 没有任何关系。 Java 领域出了点问题。
  • 在这个之前应该有另一个堆栈跟踪

标签: grails


【解决方案1】:

ApplicationContext ctx = new ClassPathXmlApplicationContext();

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-03
    • 2017-10-03
    • 1970-01-01
    • 2012-05-06
    • 2023-04-04
    • 1970-01-01
    相关资源
    最近更新 更多