spring java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/6210757/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
提问by emeraldhieu
I included these in the Build Path:
我在Build Path 中包含了这些:
- all Spring libs
- Apache Tomcat 7.0 library
- 所有 Spring 库
- Apache Tomcat 7.0 库
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.call(StandardContext.java:5226)
at org.apache.catalina.core.StandardContext.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.call(StandardContext.java:5226)
at org.apache.catalina.core.StandardContext.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.call(StandardContext.java:5226)
at org.apache.catalina.core.StandardContext.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.
在 中org.sprintframework.web-3.1.0.M1.jar,我可以看到org.springframework.web.context.ContextLoaderListener.
Someone on Google says that spring.jarshould be included but I don't see any spring.jarin 3.x distribution.
谷歌上有人说spring.jar应该包括在内,但我spring.jar在 3.x 发行版中没有看到任何内容。
Eclipse 3.6.2
Tomcat 7
Eclipse 3.6.2
雄猫 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 论坛(离线)上有人说应该在项目属性中检查“自动更新依赖项”,但我在项目属性中没有看到类似的内容。
回答by Marcelo
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.
在 Eclipse 管理的 tomcat 中运行 spring web 应用程序时,我遇到了类似的问题。我通过在项目的 web 部署程序集中添加 maven 依赖项解决了这个问题。
- Open the project's properties (e.g., right-click on the project's name in the project explorer and select "Properties").
- Select "Deployment Assembly".
- Click the "Add..." button on the right margin.
- Select "Java Build Path Entries" from the menu of Directive Type and click "Next".
- Select "Maven Dependencies" from the Java Build Path Entries menu and click "Finish".
- 打开项目的属性(例如,在项目资源管理器中右键单击项目名称并选择“属性”)。
- 选择“部署程序集”。
- 单击右边距的“添加...”按钮。
- 从 Directive Type 菜单中选择“Java Build Path Entries”,然后单击“Next”。
- 从 Java Build Path Entries 菜单中选择“Maven Dependencies”,然后单击“Finish”。
You should see "Maven Dependencies" added to the Web Deployment Assembly definition.
您应该会看到添加到 Web 部署程序集定义中的“Maven 依赖项”。
回答by Chepech
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:
在使用 Eclipse WDT 时,我不时会发生同样的事情。当这种情况发生在一个未经修改且以前工作的项目中时,它特别令人沮丧。这是我在最后一个场景中修复它的方法:
- Stop Tomcat (if it's running)
- Open the "Servers" view: Window > Show view > Other > Server > Servers
- Right Click on Tomcat Server > Clean Tomcat Work Directory.
- Right Click on Tomcat Server > Clean
- Restart the server
- 停止 Tomcat(如果它正在运行)
- 打开“服务器”视图:窗口 > 显示视图 > 其他 > 服务器 > 服务器
- 右键单击 Tomcat 服务器 > 清理 Tomcat 工作目录。
- 右键单击 Tomcat 服务器 > 清理
- 重启服务器
This usually fixes the issue you mention.
这通常可以解决您提到的问题。
回答by Mashrur
You could try "Clean Tomcat Work Directory" or simply "Clean..". This supposed to discard all published state and republish from scratch.
您可以尝试“清理 Tomcat 工作目录”或简单地“清理 ..”。这应该丢弃所有已发布的状态并从头开始重新发布。
回答by u2955709
I used IntelliJ IDEA, compilation is successful, but when starting Tomcat, it says:
我用的是IntelliJ IDEA,编译成功,但是启动Tomcat时提示:
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.
一开始,我以为JAR不见了,但它已经到位了。
Solution:
File > Project Structure > Artifacts, in the Output Layoutdouble click in right panel Available Elementsthe library named like Maven:..., it will be moved to WEB-INF/libin the left pane.
解决方案:
File > Project Structure > Artifacts,在Output Layout右侧面板中双击Available Elements名为 like 的库Maven:...,它将移动到WEB-INF/lib左侧面板中。
Accept and restart Tomcat.
接受并重新启动Tomcat。
回答by Aditya Gaikwad
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.
这肯定是与 Eclipse 相关的问题。对我有用的是在 eclipse 服务器选项卡中创建一个新服务器。然后在这个新服务器上运行您的应用程序,它应该可以工作。
回答by Benedikt K?ppel
You have to use at least version 3.2.8.RELEASEof spring-core.
您必须至少使用3.2.8.RELEASEspring-core版本。
For Maven, set in your pom.xml:
对于 Maven,请在您的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.
来源:http: //docs.spring.io/spring/docs/current/javadoc-api/org/springframework/cglib/core/SpringNamingPolicy.html,从 3.2.8 开始。
回答by Susie
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.
回答by abhi
I was facing the same issue for a eclipse project configured for Tomcat 7 runtime
对于为 Tomcat 7 运行时配置的 eclipse 项目,我遇到了同样的问题
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
右键单击项目并转到项目属性。单击部署程序集。我可以注意到我在编译时使用用户库创建的 spring 库 jar 丢失了。只需添加 jars,在 tomcat 启动期间,您应该不会在控制台中看到任何错误
回答by gouki
If you're using maven, perhaps the project aint built yet. First do a mvn clean packagethen try redeploying again.
如果您使用的是 maven,则该项目可能尚未构建。首先做一个mvn clean package然后再次尝试重新部署。
回答by Radhakrishnan S
Solution for Eclipse Luna:
Eclipse Luna 的解决方案:
- 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
- 右键单击 maven web 项目
- 点击“属性”菜单
- 在弹出的窗口左侧选择“部署程序集”
- 单击弹出窗口右侧的“添加...”按钮
- 现在又出现一个弹出窗口(新装配指令)
- 单击“Java 构建路径条目”
- 单击“下一步”按钮
- 单击“完成”按钮,现在自动关闭 New Assemby Directivies 弹出窗口
- 现在单击“应用”按钮和“确定”按钮
- 运行您的网络应用程序

