2013-07-23 18 views
0

我有這樣的問題,當我啓動tomcat 7:春3.2錯誤時啓動tomcat服務器7 - Bean工廠未初始化或已關閉

SEVERE: Exception sending context destroyed event to listener instance of class  
org.springframework.web.context.ContextLoaderListener 
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:171) 
at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1090) 
at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1064) 
at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1010) 
at org.springframework.web.context.ContextLoader.closeWebApplicationContext(ContextLoader.java:559) 
at org.springframework.web.context.ContextLoaderListener.contextDestroyed(ContextLoaderListener.java:143) 
at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4721) 
at org.apache.catalina.core.StandardContext$4.call(StandardContext.java:5423) 
at org.apache.catalina.core.StandardContext$4.call(StandardContext.java:5402) 
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 
at java.util.concurrent.FutureTask.run(FutureTask.java:138) 
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) 
at java.lang.Thread.run(Thread.java:680) 

這裏是我的應用程序的context.xml:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
    <beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:aop="http://www.springframework.org/schema/aop" 
xmlns:context="http://www.springframework.org/schema/context" 
xmlns:jdbc="http://www.springframework.org/schema/jdbc" 
xmlns:jee="http://www.springframework.org/schema/jee" 
xmlns:tx="http://www.springframework.org/schema/tx" 
xmlns:jpa="http://www.springframework.org/schema/data/jpa" 
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-3.2.xsd  
        http://www.springframework.org/schema/tx  http://www.springframework.org/schema/tx/spring-tx-3.2.xsd 
        http://www.springframework.org/schema/aop  http://www.springframework.org/schema/aop/spring-aop-3.2.xsd 
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd" 
default-autowire="byName" default-lazy-init="true"> 

<context:annotation-config /> 
<context:spring-configured /> 
<context:component-scan base-package="com.xxx" annotation-config="true" /> 


<bean id="dataSource" class="oracle.jdbc.pool.OracleDataSource"> 
    < data source connection > 
</bean> 


<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource" /> 
    <property name="schemaUpdate" value="false" /> 

    <property name="annotatedClasses"> 
     <list> 
      ... list of classes mapped 
     </list> 
    </property> 

    <property name="hibernateProperties"> 
     <props> 
      <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop> 
      <prop key="hibernate.cache.use_second_level_cache">false</prop> 
      <prop key="hibernate.cache.use_query_cache">false</prop> 
      <prop key="hibernate.show_sql">true</prop> 
      <prop key="hibernate.format_sql">true</prop> 
     </props> 
    </property> 
</bean> 

<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> 
    <property name="sessionFactory" ref="sessionFactory" /> 
</bean> 

<bean id="auditServiceAOP" class="com.xxx.aop.AuditServiceAOP"> 
    <constructor-arg ref="xxxSession" /> 
    <constructor-arg ref="auditorshipService" /> 
</bean> 

<bean id="auditLoginAOP" class="com.xxx.aop.AuditLoginAOP"> 
    <constructor-arg ref="auditorshipService" /> 
</bean> 

<bean id="exceptionLoggerAOP" class="com.xxx.aop.ExceptionLoggingAOP" /> 

<tx:annotation-driven transaction-manager="transactionManager" /> 

<aop:aspectj-autoproxy proxy-target-class="false" /> 
</beans> 

這是我的彈簧security.xml文件:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:security="http://www.springframework.org/schema/security" 
    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-3.1.xsd 
      http://www.springframework.org/schema/security 
http://www.springframework.org/schema/security/spring-security-3.1.xsd"> 

<security:http auto-config="false" use-expressions="true" access-denied-page="/pages/login.xhtml"> 
    <security:intercept-url pattern="/javax.faces.resource/**" access="permitAll" /> 
    <security:intercept-url pattern="/pages/login.xhtml" access="permitAll" /> 
    <security:intercept-url pattern="/pages/**" access="isFullyAuthenticated()" /> 

    <security:logout invalidate-session="true" 
     logout-success-url="/pages/login.xhtml" 
     logout-url="/j_spring_security_logout" 
     delete-cookies="JSESSIONID,SPRING_SECURITY_REMEMBER_ME_COOKIE" /> 

    <security:form-login authentication-failure-url="/pages/login.xhtml?error=true" 
     default-target-url="/pages/home.xhtml" 
     login-page="/pages/login.xhtml" /> 
</security:http> 

<security:authentication-manager alias="authenticationManager"> 
    <security:authentication-provider ref="xxxAuthenticationProvider" /> 
</security:authentication-manager> 

我使用的彈簧版本是3.2.2,彈簧安全版本是3.1.4。

我在stackoverflow搜索,但我沒有找到任何解決我的問題。

我很感激幫助!謝謝!

UPDATE

的web.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app id="WebApp_ID" version="2.5" 
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
<display-name>xxx</display-name> 
<!-- Spring --> 
<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>/WEB-INF/applicationContext.xml, /WEB-INF/applicationContext-security.xml, /WEB-INF/applicationContext-email.xml</param-value> 
</context-param> 
<context-param> 
    <param-name>javax.faces.PROJECT_STAGE</param-name> 
    <param-value>Development</param-value> 
</context-param> 
<context-param> 
    <param-name>primefaces.THEME</param-name> 
    <param-value>ui-lightness</param-value> 
</context-param> 
<context-param> 
    <param-name>com.sun.faces.expressionFactory</param-name> 
    <param-value>org.jboss.el.ExpressionFactoryImpl</param-value> 
</context-param> 
<filter> 
    <filter-name>PrimeFaces FileUpload Filter</filter-name> 
    <filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>PrimeFaces FileUpload Filter</filter-name> 
    <servlet-name>Faces Servlet</servlet-name> 
</filter-mapping> 
<listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 
<listener> 
    <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> 
</listener> 
<!-- Spring security --> 
<filter> 
    <filter-name>springSecurityFilterChain</filter-name> 
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>springSecurityFilterChain</filter-name> 
    <url-pattern>/*</url-pattern> 
    <dispatcher>FORWARD</dispatcher> 
    <dispatcher>REQUEST</dispatcher> 
</filter-mapping> 
<servlet> 
    <servlet-name>Faces Servlet</servlet-name> 
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>*.xhtml</url-pattern> 
</servlet-mapping> 
<mime-mapping> 
    <extension>jpg</extension> 
    <mime-type>image/jpeg</mime-type> 
</mime-mapping> 
<mime-mapping> 
    <extension>png</extension> 
    <mime-type>image/x-png</mime-type> 
</mime-mapping> 
<welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
</welcome-file-list> 
</web-app> 
+0

你的web.xml是什麼樣的? – mthmulders

+0

我更新了問題。請看一下。謝謝@mthmulders –

+1

根據堆棧跟蹤,在真正的錯誤後打印。它包含'ContextLoaderListener.contextDestroyed',表示容器正在關閉Web應用程序。在你展示的那個之前是否有錯誤? – mthmulders

回答

1

我真的不知道是什麼原因造成的錯誤,但我解決重新下載春天的庫。

相關問題