I am trying to migrate existing spring web application (Spring version 4.1.X) to Spring boot (version 1.3),
I am using web.xml in the application, There I have configured listener.
<context-param>
<param-name>contextClass</param-name>
<param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value>
</context-param>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>com.package.config.WebApplicationContextConfig</param-value>
</context-param>
<listener>
<listener-class>com.package.application.ApplicationContextLoaderListener</listener-class>
</listener>
<servlet>
<description>
</description>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>com.package.servlet.ApplicationServlet</servlet-class>
<init-param>
<description>contextClass</description>
<param-name>contextClass</param-name>
<param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value>
</init-param>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>com.package.config.SpringWebMvcConfig</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
In the listener I am calling super contextIntialized.
public class ApplicationContextLoaderListener extends ContextLoaderListener
public void contextInitialized(ServletContextEvent event) {
super.contextInitialized(event);
Application is failing at below location which is available in ContextLoader.class
public WebApplicationContext initWebApplicationContext(ServletContext servletContext) {
if (servletContext.getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE) != null) {
throw new IllegalStateException(
"Cannot initialize context because there is already a root application context present - " +
"check whether you have multiple ContextLoader* definitions in your web.xml!");
}
I am getting below error.
java.lang.IllegalStateException: Cannot initialize context because there is already a root application context present - check whether you have multiple ContextLoader* definitions in your web.xml!
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:297) ~[spring-web-4.2.7.RELEASE.jar:4.2.7.RELEASE]
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107) ~[spring-web-4.2.7.RELEASE.jar:4.2.7.RELEASE]
at com.package.application.ApplicationContextLoaderListener.contextInitialized(ApplicationContextLoaderListener.java:47) ~[classes/:1.0-SNAPSHOT]
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4842) [catalina.jar:8.0.36]
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5303) [catalina.jar:8.0.36]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147) [catalina.jar:8.0.36]
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1407) [catalina.jar:8.0.36]
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1397) [catalina.jar:8.0.36]
at java.util.concurrent.FutureTask.run(Unknown Source) [na:1.8.0_31]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [na:1.8.0_31]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.8.0_31][enter image description here][1]
at java.lang.Thread.run(Unknown Source) [na:1.8.0_31]
