When you happen to work with a Spring MVC Framework based Web application. Then java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener is a common problem which will be occurring during deployment. Spring MVC throws this exception when it is not able to find the “org.springframework.web.context.ContextLoaderListener” class which loads up the all the Spring MVC configuration files and other configuration files which is declared in the web.xml.
<context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/SpringMVC-servlet.xml, /WEB-INF/SpringSecurity.xml </param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
This exception will mostly happen when you start the server
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571) at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:529) at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:511) at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:139) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4888) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5467) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) Sep 07, 2016 12:24:49 PM org.apache.catalina.core.StandardContext listenerStart SEVERE: Skipped installing application listeners due to previous error(s) Sep 07, 2016 12:24:49 PM org.apache.catalina.core.StandardContext startInternal SEVERE: Error listenerStart Sep 07, 2016 12:24:49 PM org.apache.catalina.core.StandardContext startInternal SEVERE: Context [/SpringMVCTutorial] startup failed due to previous errors Sep 07, 2016 12:24:49 PM org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["http-bio-8080"] Sep 07, 2016 12:24:49 PM org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["ajp-bio-8009"] Sep 07, 2016 12:24:49 PM org.apache.catalina.startup.Catalina start INFO: Server startup in 5192 ms
Solution 1:
Check whether the spring web dependency is added into your project.
- If your project is running with Spring 3.0 or greater, then add spring-web.jar in your classpath
- If you project is running with Spring 2.0 or lower, then add spring.jar in your classpath
Solution 2:
If the above solution didn’t work and still getting the exception, then those dependencies must be added to project deployment assembly as well.
Follow the below steps to add the dependencies to the deployment assembly.
- Open the Project Properties, right click the project –> Properties (or) press Alt+Enter to open Project Properties
- Now click on Next, which opens the “New Assembly Directive”. Select all the Jars and click on Finish.
- Now your Web Deployment Assembly should have all the Jars in it. Now Click on Ok.
- Thats all you have to do, now start the server, the server should start start without any issues.
Leave a Reply