java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener

SpringTomcat7Classnotfoundexception

Spring Problem Overview


I included these in the Build Path:

  • all Spring libs
  • Apache Tomcat 7.0 library

The project still fails during startup:

SEVERE: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
	at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:415)
	at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:397)
	at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4660)
	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(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)
Jun 2, 2011 11:07:38 AM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Error configuring application listener of class org.springframework.web.context.request.RequestContextListener
java.lang.ClassNotFoundException: org.springframework.web.context.request.RequestContextListener
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
	at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:415)
	at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:397)
	at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4660)
	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(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)
Jun 2, 2011 11:07:38 AM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Error configuring application listener of class com.sun.faces.config.ConfigureListener
java.lang.ClassNotFoundException: com.sun.faces.config.ConfigureListener
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
	at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:415)
	at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:397)
	at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4660)
	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(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)

In org.sprintframework.web-3.1.0.M1.jar, I can see the org.springframework.web.context.ContextLoaderListener.

Someone on Google says that spring.jar should be included but I don't see any spring.jar in 3.x distribution.

Eclipse 3.6.2
Tomcat 7

Edit: Someone on the Spring Forum (offline) said "Automatically update dependencies" should be checked in Project Properties but I don't see anything like that in project properties.

Spring Solutions


Solution 1 - Spring

I had a similar problem when running a spring web application in an Eclipse managed tomcat. I solved this problem by adding maven dependencies in the project's web deployment assembly.

  1. Open the project's properties (e.g., right-click on the project's name in the project explorer and select "Properties").
  2. Select "Deployment Assembly".
  3. Click the "Add..." button on the right margin.
  4. Select "Java Build Path Entries" from the menu of Directive Type and click "Next".
  5. Select "Maven Dependencies" from the Java Build Path Entries menu and click "Finish".

You should see "Maven Dependencies" added to the Web Deployment Assembly definition.

Solution 2 - Spring

Same thing happens to me from time to time when using Eclipse WDT. Its specialy frustrating when this happens to a unmodified and previously working project. This is what I do to fix it in this last scenario:

  1. Stop Tomcat (if it's running)
  2. Open the "Servers" view: Window > Show view > Other > Server > Servers
  3. Right Click on Tomcat Server > Clean Tomcat Work Directory.
  4. Right Click on Tomcat Server > Clean
  5. Restart the server

This usually fixes the issue you mention.

Solution 3 - Spring

I used IntelliJ IDEA, compilation is successful, but when starting Tomcat, it says:

Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener

In the beginning, I thought the JAR was missing, but it was in place.

Solution: File > Project Structure > Artifacts, in the Output Layout double click in right panel Available Elements the library named like Maven:..., it will be moved to WEB-INF/lib in the left pane.

Accept and restart Tomcat.

Solution 4 - Spring

You could try "Clean Tomcat Work Directory" or simply "Clean..". This supposed to discard all published state and republish from scratch.

Solution 5 - Spring

This is surely Eclipse related issue. The thing which worked for me is creating a new server in eclipse server tab. Then run your application in this new server, it should work.

Solution 6 - Spring

You have to use at least version 3.2.8.RELEASE of spring-core.

For Maven, set in your pom.xml:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>3.2.8.RELEASE</version>
</dependency>

Source: http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/cglib/core/SpringNamingPolicy.html, since 3.2.8.

Solution 7 - Spring

If everything mentioned above does not work try the following. It worked for me.

Remove your project from the server > Restart server > Add your project to server > Restart server.

Detailed Instruction:

1. Right click on server > Add and Remove
2. Select your project > Remove > Finish
3. Restart your server
4. Right click on server > Add and Remove
5. Select your project > Add > Finish
6. Restart your server again.

Solution 8 - Spring

If you're using maven, perhaps the project aint built yet. First do a mvn clean package then try redeploying again.

Solution 9 - Spring

I was facing the same issue for a eclipse project configured for Tomcat 7 runtime

Right click on project and go to project properties. Click on Deployment Assembly. I could notice that my spring library jars which I created during compile time with a user library was missing. Just add the jars and you should see no errors in console during tomcat start up

Solution 10 - Spring

Solution for Eclipse Luna:

  1. Right Click on maven web project
  2. Click 'Properties'menu
  3. Select 'Deployment Assembly' in left side of the popped window
  4. Click 'Add...' Button in right side of the popped up window
  5. Now appear one more popup window(New Assembly Directivies)
  6. Click 'Java Build path entries'
  7. Click 'Next' Button
  8. Click 'Finish' Button, now atomatically close New Assemby Directivies popup window
  9. Now click 'Apply' Button and Ok Button
  10. Run your webapplication

Solution 11 - Spring

If you are using IntelliJ IDEA, and deploy application on Tomcat Server, it says: Under File menu -> select project Structure -> click artifact -> select your jars and right click -> put in WEB\lib -> restart serverenter image description here

Solution 12 - Spring

Actually this is a problem of Tomcat. Just go to 'lib' folder of your project and copy your all 'Spring' related jars into this. Refresh your project and you are all good to go. This problem sometime persists because tomcat is unable to locate Spring core classes.

Solution 13 - Spring

For me the fix was to right click on my webapp module > Maven > Update Project

Solution 14 - Spring

I also had the same error. I had not added the below dependency in my POM file.

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>4.1.7.RELEASE</version>
  </dependency>

But My porject used to run even before I had added this dependency. But at one point it stopped and started giving the same above error.

If any one couldn't solve this error they can also solve by this link

Solution 15 - Spring

I had the same issue. I resolved it by adding spring-web dependency in my pom. Make sure you use spring-web jar which has ContextLoaderListener class extends ContextLoader implements ServletContextListener and reside in the package org.springframework.web.context. I used 3.0.4.RELEASE

Solution 16 - Spring

I tried the

  • project clean mvn
  • clean
  • clean tomcat work directory Automatically
  • update dependencies

The only thing that worked at least temporarily was to add Maven Dependencies to Web Deployment Assembly definition

But this does not work for ever! After a couple of days it stops working. My solution was to remove Maven Dependencies, apply change and add Maven Dependencies again.

I'm using

  • eclipse Juno
  • embedded maven
  • tomcat 7

Solution 17 - Spring

For gradle users, It works with following steps

  1. Stop and Delete tomcat server from Servers Tab in eclipse

eclipse tomcat tab

2) clean webapp and work directory from tomcat installation , (Reference, How-To: Clear out Tomcat’s cache and fix outdated JSP problems)

$ rm -r /usr/local/AT7028/work/*
$ rm -r /usr/local/AT7028/webapps/WAR_NAME

3) clean and eclipsify project using build tool

$ ./gradlew clean eclipse //fire respective command for mvn users, $ mvn clean package

4) configure a new Tomcat server in eclipse, and run the project again.

Solution 18 - Spring

i too faced the same problem.... and resolved by following the below steps:

RC(right click on web project) --> properties --> Deployment Assembly --> Add --> Java Build Path Entries --> Next --> select jar files which are missing --> next --> finish

Application is running successfully...

Solution 19 - Spring

I have the same issue , and I have resolved it using the steps mentioned above.but no when I have this issue again and i try the following,

RC(right click on web project) --> properties --> Deployment Assembly --> Add --> Java Build Path Entries --> Next -->

after clicking on next its only a blank window with the options Next and Fnish disabled.What can I do now?

Solution 20 - Spring

I faced the same problem.

Just removed the server from configuration and added it back after restarting eclipse by adding it to the server runtime environment.

Solution 21 - Spring

One quick solution I prefer which I suited most for this situation is simply delete .metadata folder of your work space and import your projects again. If you try all other option it wont guarantee the success. Sometimes the above solutions work sometime you will spend your precious hours to fix this configuration.

One day i decided to clean my work station.I arranged the projects to their suitable folders according to different clients. As a result all got messed up. After spending a whole day it did not end up in a fixed work space. Next day I simply deleted the .metadata folder of the work space and imported all the projects again. Bingo all set.

Solution 22 - Spring

Put <packaging>war</packaging> in your pom.xml if you are using Maven. In that case, maybe it is with jar packaging

You must have Maven libs in Deployment Assembly

Solution 23 - Spring

Using the "Update project configuartion" messed up the build path of the project.

Fix: Open the "configure build path..." menu (right click on the project) and fix the Included/Excluded options for each source folder. That worked for me.

Solution 24 - Spring

In many case It is java facet problem ,jdk or jre or jsp version is difference than maven project face.

Solution 25 - Spring

The actual solution for me was to install the "m2e-wtp - Maven integration for WTP". The solution of Marcelo is not neccessary in that case.

Solution 26 - Spring

if nothing from above works, remove the .class from the listener class i.e.

<listener>
<listener-class>




org.springframework.web.context.ContextLoaderListener.class




</listener-class>
</listener>

</listener-class> </listener>

Solution 27 - Spring

This works for me ..

Right Click on maven web project Click 'Properties'menu Select 'Deployment Assembly' in left side of the popped window Click 'Add...' Button in right side of the popped up window Now appear one more popup window(New Assembly Directivies) Click 'Java Build path entries' Click 'Next' Button Click 'Finish' Button, now atomatically close New Assemby Directivies popup window Now click 'Apply' Button and Ok Button Run your webapplication

Solution 28 - Spring

This happened to me after I made changes to my Hibernate mapping in an IntelliJ project using Gradle. Simply rebuilding the project worked for me.

Solution 29 - Spring

I ran into this a couple times a quarter. This time I had a minimal change summary in my git diff and tracked the problem to a reset classpath (missing my WEB-INF/lib dependency) in eclipse. This seems to occur any time I pull in or pull out parent/sibling maven projects.

There are mentions of adding your spring jars to the tomcat web container lib - this is ok and is the way most EE servers run. However be aware that by placing spring higher in the classloader tree on tomcat you will be running higher than the classloader level of your war context. I recommend you leave the libs in a per/war lower level classloader.

We see the following after a truncated .classpath after a structural project change in eclipse.

Dec 18, 2016 11:13:39 PM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Error configuring application listener of class org.springframework.web.context.request.RequestContextListener
java.lang.ClassNotFoundException: org.springframework.web.context.request.RequestContextListener

My classpath was reset and the WEB-INF/lib dependency was removed.

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
	<attributes>
		<attribute name="maven.pomderived" value="true"/>
		<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
	</attributes>
</classpathentry>

put back

<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>

and you will be OK.

thank you /michael

Solution 30 - Spring

I got this when I had the lib in my build path, but not in my deployment assembly. Also when I had a missing context.xml.

Solution 31 - Spring

When I look at the solutions, it seems the problem is always something that prevents the spring library to be loaded. It could be a dependency problem or a deployment problem.

In my case, it was the maven repository that somehow got corrupt. What solved the problem was to remove the folder `C:\Users(my name).m2\repository' and rebuild.

Solution 32 - Spring

In my case the problem was that the class was located in test package. Moving it to main package has solved the problem.

Solution 33 - Spring

I did a code pull but did not update project version on eclipse server/modules tab. For some reason, maven clean install did not delete old project folder from target and instead created new folder too.

Correcting project version on server fixed this issue.

Posting this just in case someone makes the same mistake.

Solution 34 - Spring

Check also the scope in the pom.xml dependency , if the scope is provided that indicates you expect the JDK or a container to provide the dependency at runtime.

For more details: Dependency Scope

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionemeraldhieuView Question on Stackoverflow
Solution 1 - SpringMarceloView Answer on Stackoverflow
Solution 2 - SpringChepechView Answer on Stackoverflow
Solution 3 - Spring乌鸦不会飞View Answer on Stackoverflow
Solution 4 - SpringMashrurView Answer on Stackoverflow
Solution 5 - SpringAditya GaikwadView Answer on Stackoverflow
Solution 6 - SpringBenedikt KöppelView Answer on Stackoverflow
Solution 7 - SpringSusieView Answer on Stackoverflow
Solution 8 - SpringgoukiView Answer on Stackoverflow
Solution 9 - SpringabhiView Answer on Stackoverflow
Solution 10 - SpringRadhakrishnan SView Answer on Stackoverflow
Solution 11 - Springharun ugurView Answer on Stackoverflow
Solution 12 - SpringRahul SharmaView Answer on Stackoverflow
Solution 13 - SpringTheBakkerView Answer on Stackoverflow
Solution 14 - Springuser2493028View Answer on Stackoverflow
Solution 15 - SpringAsif KhanView Answer on Stackoverflow
Solution 16 - SpringVolker DemelView Answer on Stackoverflow
Solution 17 - SpringprayagupaView Answer on Stackoverflow
Solution 18 - SpringNeelView Answer on Stackoverflow
Solution 19 - SpringGeo ThomasView Answer on Stackoverflow
Solution 20 - SpringRamashisView Answer on Stackoverflow
Solution 21 - Springbiswarup bannerjeeView Answer on Stackoverflow
Solution 22 - SpringRobson MartinsView Answer on Stackoverflow
Solution 23 - SpringkiwifrogView Answer on Stackoverflow
Solution 24 - SpringAli.MojtehedyView Answer on Stackoverflow
Solution 25 - SpringChristianView Answer on Stackoverflow
Solution 26 - SpringAbdullah AlshammariView Answer on Stackoverflow
Solution 27 - Springuser6425667View Answer on Stackoverflow
Solution 28 - SpringPatience MpofuView Answer on Stackoverflow
Solution 29 - SpringMichael O'BrienView Answer on Stackoverflow
Solution 30 - SpringNoumenonView Answer on Stackoverflow
Solution 31 - SpringFlorian FView Answer on Stackoverflow
Solution 32 - Springmadox2View Answer on Stackoverflow
Solution 33 - SpringKiranView Answer on Stackoverflow
Solution 34 - SpringYacinoView Answer on Stackoverflow