码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2017-07-19 19:35:48      阅读:445      评论:0      收藏:0      [点我收藏+]

标签:errors   nio   sprintf   disable   cas   track   img   war   element   

https://stackoverflow.com/questions/6210757/java-lang-classnotfoundexception-org-springframework-web-context-contextloaderl

 

 

I included:

  • all Spring libs,

  • Apache Tomcat 7.0 library

    in Build Path

but it still gives errors:

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)Jun2,201111: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 "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 says "Automatically update dependencies" should be checked in Project Properties but I don‘t see anything like that in project properties.ClassNotFoundException:org.springframework.web.con text.ContextLoaderListener

shareimprove this question
 
1  
close the project , create new workplace, make assure about the dependencies in POM. i had to face this problem but was fixed after correction in dependencies – MLS Jun 2 ‘11 at 6:59
    
Can you post the contents of your .war /lib folder please. Or at least everything that is .*spring.*\.jar. – SimeonJun 2 ‘11 at 7:45 

28 Answers

up vote647down voteaccepted

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.

shareimprove this answer
 
5  
That is the way you should do it, the correct way in eclipse. – pap Apr 16 ‘12 at 10:30
15  
I was having the same problem. But I cannot see ‘Deployment Assembly‘ at ‘Properties‘ (in a module of my multimodule maven project). – gtiwari333 Jun 1 ‘12 at 2:45
9  
This is correct, although highly annoying. Perhaps something m2e plugin should take care of, in my opinion.– RickB May 4 ‘13 at 0:24
7  
I see Maven Dependencies added to the Web Deployment Assembly definition but I keep getting the error. – dabadaba Apr 14 ‘14 at 18:39
8  
What if Java Build Path Entries contains nothing ? I‘m in that case. – Kii Feb 13 ‘15 at 9:33
技术分享技术分享

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.

shareimprove this answer
 
2  
There is a bug report for that specific situation (bugs.eclipse.org/bugs/show_bug.cgi?id=365748). Eclipse developers are in need of more informations about it and ways to reproduce the problem. – Chucky Sep 19 ‘12 at 10:01
    
good this is the flexible solution for all, this answer must be marked as answer. Good work Chepech – Java Questions Apr 11 ‘13 at 13:39
3  
This is really a simplest solution for this problem. Thanks Chepech! – Badal May 1 ‘13 at 5:41
1  
Very good. It solved for me. – Alex Aug 19 ‘13 at 21:18
1  
This did not help for me using eclipse 4.4. I had to use Susie‘s method remove/add deployment to tomcat. I was monitoring the tomcat deployment folder when performing the cleanings. Don‘t know why cleaning does not clean the the deployment folder. – Blessed Geek Sep 19 ‘14 at 11:06

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

shareimprove this answer
 
    
Thx for this solution! The accepted answer above didn‘t solve this issue for me, but yours did. – GreenTurtleOct 9 ‘12 at 14:47

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.

shareimprove this answer
 

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.

shareimprove this answer
 
    
This answer is not exactly relevant for the asked question as OP was using Eclipse – Adam Michalik Dec 29 ‘15 at 12:29
2  
But it helped me. – udaybhaskar Apr 29 ‘16 at 11:32

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.

shareimprove this answer
 

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

shareimprove this answer
 
    
Eclipse 3.6.2 + Tomcat 7 – Emerald214 Jun 2 ‘11 at 6:08

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

shareimprove this answer
 

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.
shareimprove this answer
 

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.

shareimprove this answer
 

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

shareimprove this answer
 

For gradle users, It works with following steps

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

技术分享

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.

shareimprove this answer
 

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...

shareimprove this answer
 
    
I have the OP‘s error, but there were no jar files missing in my deployment assembly. – Blamkin86 Oct 22 ‘15 at 17:37

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?

shareimprove this answer
 

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.

shareimprove this answer
 

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

shareimprove this answer
 

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
shareimprove this answer
 

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.

shareimprove this answer
 

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

shareimprove this answer
 

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.

shareimprove this answer
 

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

shareimprove this answer
 

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.

shareimprove this answer
 

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>
shareimprove this answer
 

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

shareimprove this answer
 
    
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>4.1.6.RELEASE</version> </dependency> Adding this helped me getting solved this error . – ashu17188 Mar 7 ‘16 at 18:03 

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

shareimprove this answer
 

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.

shareimprove this answer
 

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

shareimprove this answer
 

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.

shareimprove this answer

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

标签:errors   nio   sprintf   disable   cas   track   img   war   element   

原文地址:http://www.cnblogs.com/Bruce3555/p/7207327.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!