it-swarm.com.de

LifecycleProcessor nicht initialisiert - Rufen Sie 'refresh' auf, bevor Sie Lifecycle-Methoden über den Kontext aufrufen

Ich bin neu in der Frühlingssicherheit Ich habe alles im Tutorial gemacht, aber ich habe diese Ausnahme bekommen.

Ich habe eine einfache 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>

Der spring-config.xml ist leer.

Hier sind meine Abhängigkeiten:

    <!-- 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>

Ich erhalte jedoch diese Ausnahme, wenn ich die Anwendung starte:

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

enter image description here

enter image description here

16
user4843183

Das gleiche Problem begegnet. Dies wurde durch die Verwendung von Java 8 in Kombination mit einigen Federabhängigkeiten verursacht. Ich habe nicht herausgefunden, welche, aber mit Java 7 das Problem damals gelöst wurde.

12
Adrian B.

Dieser Fehler kann auftreten, wenn Sie Spring verwenden und in den Projekteigenschaften manuell ein externes Jar hinzufügen, anstatt die dedizierte Abhängigkeitsdatei "pom.xml" zu verwenden.

4
Antoine Rougeot

Stellen Sie die rechte Version des Frühlings und seine Abhängigkeiten mit der rechten Tomcat-Version bereit, Für - Spring 3.2 mit Jersey 2.22 in Tomcat 8 und nicht in Tomcat 7 . Spring 3.0 mit Jersey 2 in Tomcat 7 Versionskompatibilität

4
hariharan kumar

Das Entfernen und erneute Hinzufügen des Projekts auf dem Server half mir, das Problem zu lösen

1
M. Gopal

Ich habe eine ältere Tomcat-Version für mein Projekt verwendet und erhielt dieselbe Fehlermeldung. Ich habe es auf Tomcat 9 aktualisiert und funktioniert jetzt einwandfrei. Sie sollten die Version entsprechend der Kompatibilität dieser Systeme untereinander aktualisieren.

1
Suketu

Für mich wurde es durch eine Abhängigkeit verursacht, die eine inkompatible Abhängigkeit einführte. Ich musste die unnötigen Wurzelabhängigkeiten ausschließen:

        <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>
1
PAX

Ich bin kürzlich auch auf diese Ausnahme gestoßen. Für mich passierte es beim Versuch, eine Spring-Pod in einem Kubernetes-Cluster einzusetzen. Die Pod wurde getötet, bevor der Frühling die Möglichkeit hatte, ordnungsgemäß hochzufahren und auf die Gesundheitsprüfung zu reagieren.

Der Fix für mich bestand darin, die Verzögerung zu erhöhen, bevor der Endpunkt für den Healthcheck überprüft wurde.

Es kann sich lohnen, zu prüfen, ob der Frühling während des Startvorgangs abbricht, wenn dieser Fehler angezeigt wird

0
kane morgan

Ich bin auf diese Ausnahme gestoßen und in meinem Fall bestand die Lösung darin, einen Tippfehler in einem @ Repository-Tag ("der Tippfehler war hier") in einer meiner DAO-Implementierungen zu beheben

0