web-dev-qa-db-fra.com

BeanFactory non initialisé ou déjà fermé - appelez 'refresh' avant

voici mon erreur: 

Je reçois cette erreur, est-ce que quelqu'un peut m'aider à ce sujet?.

> SEVERE: Exception sending context initialized event to listener
> instance of class
> org.springframework.web.context.ContextLoaderListener
> Java.lang.NoSuchMethodError:
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.setEnvironment(Lorg/springframework/core/env/Environment;)V
>   at
> org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.Java:87)
>   at
> org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.Java:131)
>   at
> org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.Java:522)
>   at
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.Java:436)
>   at
> org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.Java:385)
>   at
> org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.Java:284)
>   at
> org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.Java:111)
>   at
> org.Apache.catalina.core.StandardContext.listenerStart(StandardContext.Java:4723)
>   at
> org.Apache.catalina.core.StandardContext$1.call(StandardContext.Java:5226)
>   at
> org.Apache.catalina.core.StandardContext$1.call(StandardContext.Java:5221)
>   at Java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)    at
> Java.util.concurrent.FutureTask.run(Unknown Source)   at
> Java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
>   at Java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
>   at Java.lang.Thread.run(Unknown Source) Nov 21, 2013 12:54:38 PM
> org.Apache.catalina.core.StandardContext startInternal SEVERE: Error
> listenerStart Nov 21, 2013 12:54:38 PM
> org.Apache.catalina.core.StandardContext startInternal SEVERE: Context
> [/FLPalette] startup failed due to previous errors Nov 21, 2013
> 12:54:38 PM org.Apache.catalina.core.ApplicationContext log INFO:
> Closing Spring root WebApplicationContext Nov 21, 2013 12:54:38 PM
> org.Apache.catalina.core.StandardContext listenerStop 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:172)
>   at
> org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.Java:1066)
>   at
> org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.Java:1040)
>   at
> org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.Java:988)
>   at
> org.springframework.web.context.ContextLoader.closeWebApplicationContext(ContextLoader.Java:556)
>   at
> org.springframework.web.context.ContextLoaderListener.contextDestroyed(ContextLoaderListener.Java:142)
>   at
> org.Apache.catalina.core.StandardContext.listenerStop(StandardContext.Java:4763)
>   at
> org.Apache.catalina.core.StandardContext$4.run(StandardContext.Java:5472)
>   at Java.lang.Thread.run(Unknown Source)     at
> org.Apache.catalina.core.StandardContext.stopInternal(StandardContext.Java:5481)
>   at
> org.Apache.catalina.util.LifecycleBase.stop(LifecycleBase.Java:225)
>   at
> org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:153)
>   at
> org.Apache.catalina.core.ContainerBase.startInternal(ContainerBase.Java:1033)
>   at
> org.Apache.catalina.core.StandardHost.startInternal(StandardHost.Java:774)
>   at
> org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:145)
>   at
> org.Apache.catalina.core.ContainerBase.startInternal(ContainerBase.Java:1033)
>   at
> org.Apache.catalina.core.StandardEngine.startInternal(StandardEngine.Java:291)
>   at
> org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:145)
>   at
> org.Apache.catalina.core.StandardService.startInternal(StandardService.Java:443)
>   at
> org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:145)
>   at
> org.Apache.catalina.core.StandardServer.startInternal(StandardServer.Java:727)
>   at
> org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:145)
>   at org.Apache.catalina.startup.Catalina.start(Catalina.Java:620)    at
> Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)   at
> Sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)   at
> Sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)   at
> Java.lang.reflect.Method.invoke(Unknown Source)   at
> org.Apache.catalina.startup.Bootstrap.start(Bootstrap.Java:303)   at
> org.Apache.catalina.startup.Bootstrap.main(Bootstrap.Java:431) Nov 21,
> 2013 12:54:38 PM org.Apache.coyote.AbstractProtocol start INFO:
> Starting ProtocolHandler ["http-bio-8080"] Nov 21, 2013 12:54:38 PM
> org.Apache.coyote.AbstractProtocol start INFO: Starting
> ProtocolHandler ["ajp-bio-8009"] Nov 21, 2013 12:54:38 PM
> org.Apache.catalina.startup.Catalina start

pom.xml:

<project xmlns="http://maven.Apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.Apache.org/POM/4.0.0 http://maven.Apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.Paypal.palette</groupId>
  <artifactId>FLPalette</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
   <name>FLPalette</name>
  <url>http://maven.Apache.org</url>
  <dependencies>
  <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-Java</artifactId>
    <version>5.1.5</version>
</dependency>
       <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>${org.springframework.version}</version>
            </dependency>
            <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${org.springframework.version}</version>
        </dependency>
        <dependency>
        <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${org.springframework.version}</version>
        </dependency>  

  <dependency>
    <groupId>wsdl4j</groupId>
    <artifactId>wsdl4j</artifactId>
    <version>1.6.3</version>
    <scope>test</scope>
</dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.8.1</version>
        <type>jar</type>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>3.1.1.RELEASE</version>
        <type>jar</type>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>3.1.1.RELEASE</version>
        <type>jar</type>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.14</version>
        <type>jar</type>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-tx</artifactId>
        <version>3.1.1.RELEASE</version>
        <type>jar</type>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>jstl</groupId>
        <artifactId>jstl</artifactId>
        <version>1.1.2</version>
        <type>jar</type>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>taglibs</groupId>
        <artifactId>standard</artifactId>
        <version>1.1.2</version>
        <type>jar</type>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>3.1.1.RELEASE</version>
        <type>jar</type>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>3.1.1.RELEASE</version>
        <type>jar</type>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-core</artifactId>
        <version>3.1.1.RELEASE</version>
        <type>jar</type>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aop</artifactId>
        <version>3.1.1.RELEASE</version>
        <type>jar</type>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-config</artifactId>
        <version>3.1.1.RELEASE</version>
        <type>jar</type>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-web</artifactId>
        <version>3.1.1.RELEASE</version>
        <type>jar</type>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-ldap</artifactId>
        <version>3.1.1.RELEASE</version>
        <type>jar</type>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>com.jcraft</groupId>
        <artifactId>jsch</artifactId>
        <version>0.1.50</version>
    </dependency>
    <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</version>
    </dependency>
    <dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-taglibs</artifactId>
    <version>3.1.0.RELEASE</version>
    </dependency>
    <dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20090211</version>
    </dependency>   
    <dependency>
   <groupId>commons-fileupload</groupId>
   <artifactId>commons-fileupload</artifactId>
   <version>1.2.1</version> 
    </dependency>   
     <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>1.4</version>
    </dependency>           
  </dependencies>
  <properties>
        <org.springframework.version>3.0.2.RELEASE</org.springframework.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
  <build>
    <finalName>${project.artifactId}</finalName>   
    <plugins>
      <plugin>
        <groupId>org.Apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.3.2</version>
        <configuration>
          <source>1.6</source>
          <target>1.6</target>
        </configuration>
      </plugin>
      <plugin>
           <artifactId>maven-war-plugin</artifactId>           
       </plugin>
    </plugins>
  </build>  
</project>
21
PayBash

Cette exception est due au fait que vous fournissez un auditeur ContextLoaderListener

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

mais vous ne fournissez pascontext-param pour votre fichier de configuration de printemps. commeapplicationContext.xml Vous devez fournir un extrait ci-dessous pour votre configuration

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

Si vous fournissez la configuration de ressort basée sur Java, cela signifie que vous n'utilisez pas de fichier xml pour la configuration de ressort à ce moment.

<!-- Configure ContextLoaderListener to use AnnotationConfigWebApplicationContext
instead of the default XmlWebApplicationContext -->
<context-param>
    <param-name>contextClass</param-name>
    <param-value>
    org.springframework.web.context.support.AnnotationConfigWebApplicationContext
    </param-value>
</context-param>

<!-- Configuration locations must consist of one or more comma- or space-delimited
fully-qualified @Configuration classes. Fully-qualified packages may also
be specified for component-scanning -->
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>com.nirav.modi.config.SpringAppConfig</param-value>
</context-param>
22
NIrav Modi

Le problème ici est que la version de spring-web que vous utilisez (3.1.1-RELEASE) n'est pas compatible avec la version de spring-beans que vous utilisez (3.0.2-RELEASE). En haut de la pile, vous pouvez voir la variable NoSuchMethodError qui, à son tour, déclenche l'exception BeanFactory not initialized....

La NoSuchMethodError est due au fait que l'appel de méthode XmlWebApplicationContext.loadBeanDefinitions() dans spring-web tente d'appeler XmlBeanDefinitionReader.setEnvironment() dans spring-beans qui n'existe pas dans 3.0.2-RELEASE. Il existe cependant dans 3.1.1-RELEASE - car setEnvironment est hérité du parent AbstractBeanDefinitionReader.

Pour résoudre ce problème, il serait probablement préférable de mettre à jour le fichier jar spring-beans vers la version 3.1.1-RELEASE. La version de ce fichier semble être paramétrée dans votre pom.xml et est contrôlée par la propriété org.springframework.version plus bas dans le fichier.

9
Will Keeling

J'avais ce problème jusqu'à ce que je supprime le projet en question des déploiements du serveur (dans JBoss Dev Studio, cliquez avec le bouton droit de la souris sur le serveur et "Supprimer" le projet dans la vue Serveurs), puis procédez comme suit: 

  1. Redémarrage du serveur JBoss EAP 6.1 sans aucun projet déployé. 
  2. Une fois le serveur démarré, j'ai ajouté le projet en question au serveur. 

Après cela, redémarrez simplement le serveur (en mode débogage ou exécution) en sélectionnant le serveur, PAS le projet lui-même.

Cela semblait effacer tous les paramètres/états/mémoire/tout ce qui était à l'origine du problème et je n'ai plus eu l'erreur.

1
Fuzzy Analysis

Dans mon cas, l'erreur "BeanFactory non initialisé ou déjà fermé - appeler 'refresh' avant" était la conséquence d'une erreur précédente que je n'avais pas remarquée lors du démarrage du serveur. cause du problème.

1
Alessandro C

Dans mon cas, cette erreur était due à l'erreur de connexion réseau qui m'a remarqué dans le journal.

0
Ateeque Shaikh

Dans le framework spring de l'initialisation springframework du référentiel ou de l'annotation du contrôleur, le même nom de classe ne peut exister qu'une instance par défaut.

0
Qian Zhang

Je suis tombé sur ce problème deux fois une fois en passant de 3.2.1 à 3.2.18 et de 3.2.8 à 4.3.5 Dans les deux cas, cette erreur est due à une version différente des modules à ressort.

0
jprism