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>
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>
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.
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:
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.
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.
Dans mon cas, cette erreur était due à l'erreur de connexion réseau qui m'a remarqué dans le journal.
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.
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.