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

我在构建路径中包含了这些:

  • 所有春季图书馆
  • Apache Tomcat 7.0库

项目在启动过程中仍然失败:

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)

org.sprintframework.web-3.1.0.M1.jar中,我可以看到org.springframework.web.context.ContextLoaderListener

有人在谷歌说spring.jar应该包括在内,但我没有看到任何spring.jar在3。x分布。

Eclipse操作< p > < br > Tomcat 7 < / p >

编辑:有人在Spring论坛(离线)说“自动更新依赖项”应该在项目属性中勾选,但我在项目属性中没有看到这样的东西。

660015 次浏览

如果您正在使用maven,可能项目还没有构建。首先执行mvn clean package,然后再次尝试重新部署。

我在Eclipse管理的tomcat中运行spring web应用程序时遇到了类似的问题。我通过在项目的web部署程序集中添加maven依赖项来解决这个问题。

  1. 打开项目的属性(例如,在项目资源管理器中右键单击项目名称并选择“properties”)。
  2. 选择“部署程序集”。
  3. 点击右边的“添加…”按钮。
  4. 从指令类型的菜单中选择“Java Build Path Entries”,然后单击“Next”。
  5. 从Java Build Path Entries菜单中选择“Maven Dependencies”,然后单击“Finish”。

您应该看到“Maven Dependencies”被添加到Web Deployment Assembly定义中。

您可以尝试“清洁Tomcat工作目录”或简单地“清洁..”。这应该放弃所有发布状态,并重新发布从头开始。

在使用Eclipse WDT时,同样的事情也不时发生在我身上。当这种情况发生在一个未修改的和以前工作的项目上时,尤其令人沮丧。这是我在最后一个场景中所做的修复:

  1. 停止Tomcat(如果它正在运行)
  2. 打开“Servers”视图:Window > Show view > Other > Server > Servers
  3. 右键单击Tomcat Server > Clean Tomcat Work Directory。
  4. 右键单击Tomcat服务器> Clean
  5. 重新启动服务器

这通常可以解决你提到的问题。

我在为Tomcat 7运行时配置的eclipse项目中也遇到了同样的问题

右键单击项目,进入项目属性。 单击部署程序集。我可以注意到我在编译时用用户库创建的spring库jar丢失了。 只需添加jar,在tomcat启动

期间,您应该不会在控制台中看到错误
这肯定是Eclipse相关的问题。 对我有用的是在eclipse server选项卡中创建一个新服务器。 然后在这个新服务器上运行你的应用程序,它应该可以工作

我试过了

  • 项目清洁MVN
  • 清洁
  • clean tomcat work directory自动
  • 更新附件

唯一暂时起作用的是将Maven依赖项添加到Web部署程序集定义中

但这不是永远有效的!几天后就不工作了。我的解决方案是删除Maven依赖,应用更改并再次添加Maven依赖。

< p >我用 月食朱诺 -嵌入式maven - tomcat 7

. sh

使用“更新项目配置”会打乱项目的构建路径。

修复:打开“配置构建路径…”菜单(右键单击项目),并修复每个源文件夹的包含/排除选项。

对于gradle用户,它按照以下步骤工作

1) eclipse中的服务器选项卡中的停止并删除 tomcat服务器

eclipse tomcat tab

2)清理tomcat安装中的webapp和工作目录, (Reference, 操作方法:清除Tomcat的缓存并修复过时的JSP问题)

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

3)清洁和eclipse项目使用构建工具

$ ./gradlew clean eclipse //针对mvn用户,调用各自的命令

4)在eclipse中配置一个新的Tomcat服务器,并重新运行该项目。

在很多情况下是java方面的问题,jdk或jre或jsp版本与maven项目不同。

我也面临着同样的问题....并通过以下步骤解决:

RC(右键单击web项目)——>属性——>部署程序集——>添加——> Java构建路径条目——>下一步——>选择缺少的jar文件——>下一步——>完成

应用程序运行成功…

你必须至少使用spring-core的3.2.8.RELEASE版本。

对于Maven,在pom.xml中设置:

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

来源:http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/cglib/core/SpringNamingPolicy.html,自3.2.8。

如果上面提到的方法都不管用,试试下面的方法。这对我很管用。

从服务器中删除项目>重启服务器>将项目添加到服务器>重启服务器。

详细的指令:

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.

对我来说,实际的解决方案是安装“m2e-wtp - Maven集成WTP”。在这种情况下,马塞洛的解决方案是不必要的。

月食Luna的解决方案:

  1. 右键单击maven web项目
  2. 点击“属性'menu
  3. 在弹出窗口的左侧选择“部署程序集”
  4. 点击“添加……”按钮在弹出窗口的右侧
  5. 现在出现一个弹出窗口(新的汇编指令)
  6. 点击“Java构建路径条目”
  7. 点击“下一步”按钮
  8. 点击“完成”按钮,现在自动关闭新组装指令弹出窗口
  9. 现在点击“应用”按钮和“确定”按钮
  10. 运行web应用程序

我也有同样的问题,我已经使用上面提到的步骤解决了它。但是当我再次遇到这个问题时,我尝试了以下方法,

RC(右键单击web项目)——>属性——>部署程序集——>添加——> Java构建路径条目——>下一步——>

点击下一步后,只有一个空白窗口,选项下一步和完成禁用。我现在该怎么办?

我也面临同样的问题。

只需从配置中删除服务器,并在重新启动eclipse后将其添加到服务器运行时环境中。

对我来说,修复是右键单击我的webapp模块> Maven >更新项目

如果上述方法都不起作用,则从侦听器类中删除.class。

<listener>
<listener-class>


org.springframework.web.context.ContextLoaderListener.class


</listener-class>
</listener>

我也犯了同样的错误。我没有在POM文件中添加以下依赖项。

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

但是我的项目甚至在我添加这个依赖之前就已经运行了。但在某一时刻,它停止并开始给出相同的错误。

如果有人不能解决这个错误,他们也可以通过链接来解决

实际上这是Tomcat的问题。 只要转到项目的lib文件夹,并将所有与Spring相关的jar复制到这个文件夹中。刷新您的项目,您就可以开始了。 这个问题有时会持续存在,因为tomcat无法定位Spring核心类

我使用IntelliJ IDEA,编译是成功的,但是当启动Tomcat时,它会说:

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

一开始,我以为罐子不见了,但它还在。

< p >解决方案: File > Project Structure > Artifacts,在右边面板的Available Elements中双击Output Layout,命名为Maven:...的库,它将被移动到左边面板的WEB-INF/lib

接受并重新启动Tomcat。

这对我有用。

右键单击maven web项目 点击“属性'menu 在弹出窗口的左侧选择“部署程序集” 点击“添加……”按钮在弹出窗口的右侧 现在出现一个弹出窗口(新的汇编指令) 点击“Java构建路径条目” 点击“下一步”按钮 点击“完成”按钮,现在自动关闭新组装指令弹出窗口 现在点击“应用”按钮和“确定”按钮 运行你的webapplication

对于这种情况,我更喜欢的一个快速解决方案是简单地删除工作空间的.metadata文件夹,然后重新导入项目。如果你尝试了所有其他的选择,它并不能保证成功。有时上述解决方案可以工作,有时您需要花费宝贵的时间来修复此配置。

一天,我决定打扫我的工作站。我根据不同的客户把项目安排到合适的文件夹里。结果,一切都搞砸了。在花了一整天的时间后,它并没有在一个固定的工作空间结束。第二天,我简单地删除了工作空间的.metadata文件夹,并再次导入所有项目。答对了。

如果你使用Maven,将<packaging>war</packaging>放在你的pom.xml中。 在这种情况下,可能是jar包装

在部署程序集中必须有Maven库

这发生在我使用Gradle在IntelliJ项目中对Hibernate映射进行更改之后。简单地重新构建项目对我来说很有效。

我每个季度都碰到过几次。这一次,我在我的git diff中有一个最小的更改摘要,并在eclipse中跟踪了一个重置类路径(丢失了我的WEB-INF/lib依赖项)。每当我加入或退出父母/兄弟姐妹的专业项目时,这种情况似乎都会发生。

有提到将spring jar添加到tomcat web容器库中——这是可以的,也是大多数EE服务器运行的方式。但是请注意,通过将spring放在tomcat上的类加载器树的更高位置,您将运行在war上下文的类加载器级别之上。我建议你把类库放在一个per/war的低级类加载器中。

在eclipse中进行结构性项目更改后,我们将看到截断的.classpath。

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

我的类路径被重置,WEB-INF/lib依赖项被移除。

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

放回

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

你会没事的。

< p >谢谢 / michael < / p >

当我在构建路径中有这个库,但不在部署程序集中时,我得到了这个结果。同样当我有一个丢失的context.xml。

我也有同样的问题。我通过在我的pom中添加spring web的依赖来解决它。 确保你使用spring-web jar,它有ContextLoaderListener类扩展ContextLoader实现ServletContextListener并驻留在包org.springframework.web.context中。我使用3.0.4.RELEASE

如果你正在使用IntelliJ IDEA,并在Tomcat服务器上部署应用程序,它会说: 在< / p >
  1. 文件菜单->
  2. 选择项目结构->
  3. 点击工件,然后输出布局->
  4. 选择你的罐子在右边,双击它
  5. 现在它在左侧窗格中的WEB\lib ->
  6. 重新启动服务器

enter image description here

当我查看解决方案时,似乎问题总是阻止spring库被加载。这可能是依赖关系问题或部署问题。

在我的例子中,是maven存储库以某种方式损坏了。解决这个问题的方法是删除文件夹“C:\Users(我的名字)”。M2 \repository'和重建。

在我的例子中,问题是类位于test包中。将它移动到main包已经解决了这个问题。

我做了一个代码拉,但没有更新eclipse服务器/模块选项卡上的项目版本。由于某种原因,maven clean install没有从目标中删除旧的项目文件夹,而是创建了新文件夹。

更正服务器上的项目版本修复了此问题。

发布这篇文章只是为了防止有人犯同样的错误。

还要检查pom.xml依赖项中的作用域,如果提供的作用域表明您希望JDK或容器在运行时提供该依赖项。

更多详情: 依赖范围 < / p >