Spring:BeanFactory未初始化或已关闭

时间:2014-05-17 16:38:54

标签: java spring

当我在 applicationcontext.xml 中添加 cacheclients.xml 文件时,我遇到异常

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:4980)
    at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5626)
    at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:160)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)

我的文件cacheclient.xml文件是

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

            <bean name="announcementClient" class="com.ccc.service.cache.clients.GenericCompanyCacheClient" init-method="init">
                <property name="cacheManager" ref="cacheManager"/>
                <property name="cacheName" value="valid_data"/>
                <property name="dBQuery" value="SELECT * from validstatus"  />
                <property name="clientName" value="ValidStatus" />
                <property name="moduleName" value="VALID_Status" />
            </bean>
            <bean name="quarterlyResultsClient" class="com.ccc.service.cache.clients.GenericCompanyCacheClient" init-method="init">
                <property name="cacheManager" ref="cacheManager"/>
                <property name="cacheName" value="valid_data"/>
                <property name="dBQuery" value="SELECT * from validuserrole" />
                <property name="clientName" value="ValidUserRole" />
                <property name="moduleName" value="VALID_USER_ROLE" />
            </bean>


</beans>
在applicationcontext.xml文件中我添加了这个

<import resource="CacheClients.xml" /> 

当我删除以上导入一切正常

Web.xml条目

<context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            /WEB-INF/applicationContext.xml
        </param-value>
    </context-param>

<listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <listener>
        <listener-class>
            org.springframework.web.context.request.RequestContextListener</listener-class>
    </listener>

1 个答案:

答案 0 :(得分:0)

你在eclipse中使用tomcat吗? 然后刷新项目,maven构建它,maven更新项目 如果你还在面对这个问题,请告诉我。