LifecycleProcessor not initialized - call 'refresh' before invoking lifecycle methods via the context

匿名 (未验证) 提交于 2019-12-03 08:35:02

问题:

I am new in spring security I have been done everything in tutorial, but i got this exception.

I have a simple Spring Security + JSF web app:

web.xml

<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"          xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee          http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"          version="3.1">      <context-param>         <param-name>contextConfigLocation</param-name>         <param-value>/WEB-INF/security-config.xml</param-value>     </context-param>      <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>     </filter-mapping>      <listener>         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>     </listener>       <!--JSF -->     <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> </web-app> 

security-config.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"        xmlns:security="http://www.springframework.org/schema/security"        xsi:schemaLocation="http://www.springframework.org/schema/beans        http://www.springframework.org/schema/beans/spring-beans.xsd        http://www.springframework.org/schema/security        http://www.springframework.org/schema/security/spring-security.xsd">      <security:http>         <security:intercept-url pattern="/admin" access="ROLE_USER"/>     </security:http>      <security:authentication-manager>         <security:authentication-provider>             <security:user-service>                 <security:user name="sajjad" password="414141" authorities="ROLE_USER"/>             </security:user-service>         </security:authentication-provider>     </security:authentication-manager> </beans> 

The spring-config.xml is empty.

Here is my dependencies:

    <!-- Spring -->     <dependency>         <groupId>org.springframework</groupId>         <artifactId>spring-core</artifactId>         <version>4.1.6.RELEASE</version>     </dependency>     <dependency>         <groupId>org.springframework</groupId>         <artifactId>spring-web</artifactId>         <version>4.1.6.RELEASE</version>     </dependency>     <dependency>         <groupId>org.springframework</groupId>         <artifactId>spring-webmvc</artifactId>         <version>4.1.6.RELEASE</version>     </dependency>     <dependency>         <groupId>org.springframework</groupId>         <artifactId>spring-context</artifactId>         <version>4.1.6.RELEASE</version>     </dependency>     <dependency>         <groupId>org.springframework</groupId>         <artifactId>spring-context-support</artifactId>         <version>4.1.6.RELEASE</version>     </dependency>       <!-- Spring Security -->     <dependency>         <groupId>org.springframework.security</groupId>         <artifactId>spring-security-web</artifactId>         <version>4.0.1.RELEASE</version>     </dependency>     <dependency>         <groupId>org.springframework.security</groupId>         <artifactId>spring-security-config</artifactId>         <version>4.0.1.RELEASE</version>     </dependency>     <dependency>         <groupId>org.springframework.security</groupId>         <artifactId>spring-security-core</artifactId>         <version>4.0.1.RELEASE</version>     </dependency> 

But i get this exception when i run the application:

25-May-2015 02:35:11.113 SEVERE [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal Error listenerStart 25-May-2015 02:35:11.114 SEVERE [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal Context [] startup failed due to previous errors 25-May-2015 02:35:11.125 WARNING [RMI TCP Connection(3)-127.0.0.1] org.springframework.web.context.support.XmlWebApplicationContext.doClose Exception thrown from ApplicationListener handling ContextClosedEvent  java.lang.IllegalStateException: ApplicationEventMulticaster not initialized - call 'refresh' before multicasting events via the context: Root WebApplicationContext: startup date [Mon May 25 02:35:09 GMT+03:30 2015]; root of context hierarchy     at org.springframework.context.support.AbstractApplicationContext.getApplicationEventMulticaster(AbstractApplicationContext.java:344)     at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:331)     at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:869)     at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:836)     at org.springframework.web.context.ContextLoader.closeWebApplicationContext(ContextLoader.java:579) ...  5-May-2015 02:35:11.127 WARNING [RMI TCP Connection(3)-127.0.0.1] org.springframework.web.context.support.XmlWebApplicationContext.doClose Exception thrown from LifecycleProcessor on context close  java.lang.IllegalStateException: LifecycleProcessor not initialized - call 'refresh' before invoking lifecycle methods via the context: Root WebApplicationContext: startup date [Mon May 25 02:35:09 GMT+03:30 2015]; root of context hierarchy     at org.springframework.context.support.AbstractApplicationContext.getLifecycleProcessor(AbstractApplicationContext.java:357)     at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:877) 

UPDATE

回答1:

Encountered the same problem. It was caused by using java 8 in combination with some spring dependencies. Haven't figured it out which, but using java 7 solved the problem at the time.



回答2:

Deploy right version of spring and its dependencies with right version of tomcat, for eg - Spring 3.2 with Jersey 2.22 in Tomcat 8 and not in tomcat 7. Spring 3.0 with Jersey 2 in tomcat 7 See the version compatibility



回答3:

You can have this error if you use Spring and you add an External Jar manually in the project properties instead of using the dedicated dependency file "pom.xml".



回答4:

For me it was caused by a dependency which introduced an incompatible dependency. I had to exclude the unnecessary root dependencies:

        <exclusions>             <!-- Otherwise, Webapp doesn't start up -->             <exclusion>                 <groupId>org.glassfish.jersey.containers</groupId>                 <artifactId>jersey-container-grizzly2-http</artifactId>             </exclusion>             <exclusion>                 <groupId>org.glassfish.jersey.ext</groupId>                 <artifactId>jersey-spring3</artifactId>             </exclusion>         </exclusions> 


回答5:

I was using older version of Tomcat for my project and I was getting same error. I updated it to Tomcat 9 and its working fine now. You should update version as per compatibility of those systems with each other.



回答6:

Removing and re adding the project in the server helped me to solve the issue



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!