Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

BeanFactory not initialized or already closed - call 'refresh' before

here is my error:

I am getting this error , can any one help me on this.

> 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> 
like image 369
PayBash Avatar asked Nov 21 '13 07:11

PayBash


2 Answers

This exception come due to you are providing listener ContextLoaderListener

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

but you are not providing context-param for your spring configuration file. like applicationContext.xml You must provide below snippet for your configuration

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

If You are providing the java based spring configuration , means you are not using xml file for spring configuration at that time you must provide below code:

<!-- 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> 
like image 192
NIrav Modi Avatar answered Sep 20 '22 07:09

NIrav Modi


The issue here is that the version of spring-web that you're using (3.1.1-RELEASE) is not compatible with the version of spring-beans that you're using (3.0.2-RELEASE). At the top of the stack you can see the NoSuchMethodError which in turn triggers the BeanFactory not initialized... exception.

The NoSuchMethodError is caused because the method invocation XmlWebApplicationContext.loadBeanDefinitions() in spring-web is trying to call XmlBeanDefinitionReader.setEnvironment() in spring-beans which doesn't exist in 3.0.2-RELEASE. It does however exist in 3.1.1-RELEASE - as setEnvironment is inherited from the parent AbstractBeanDefinitionReader.

To resolve, you'd probably be best to upgrade the spring-beans jar to 3.1.1-RELEASE. The version for this jar appears to be parameterized in your pom.xml and is controlled by the property org.springframework.version further down in the file.

like image 37
Will Keeling Avatar answered Sep 24 '22 07:09

Will Keeling