You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Eclipse中运行老旧Spring项目时遇ClassNotFoundException错误

解决Eclipse中Spring+JSF项目启动时的ContextLoaderListener类找不到问题

这个错误java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener本质就是Tomcat的类加载器找不到Spring Web相关的类文件,下面是几个最常见的排查和解决步骤:

  • 检查Spring Web依赖是否存在
    如果你用Maven管理项目,确保pom.xml里已经引入了Spring Web的依赖,版本要和你项目里的Spring版本匹配:

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>你的Spring版本号</version>
        <scope>compile</scope>
    </dependency>
    

    要是用的是传统的lib目录方式,确认WEB-INF/lib文件夹下有没有spring-web-xxx.jar这个文件,没有的话就把对应的jar包复制进去。

  • 确认依赖是否被部署到Tomcat中
    在Eclipse里,右键你的项目 → Properties → Deployment Assembly,检查列表里有没有包含Maven的依赖库(或者lib目录)。如果没有,点击Add → Java Build Path Entries,选择对应的依赖项添加进去,这样Eclipse才会把这些jar包打包到部署的war包里。

  • 清理和重建项目
    老旧项目很容易因为编译缓存出问题,试试这些操作:

    1. 右键项目 → Clean,清理Eclipse的编译缓存
    2. 删掉项目下的target文件夹(Maven项目)或者build文件夹
    3. 右键项目 → Maven → Update Project(Maven项目)
    4. 重启Eclipse和Tomcat服务器
  • 检查Tomcat的类加载器配置
    有时候如果项目依赖的jar包被放到了Tomcat的全局lib目录下,可能会和项目本地的依赖冲突。检查Tomcat安装目录下的lib文件夹,看看有没有重复的Spring相关jar包,如果有的话,建议把全局的jar包移除,让项目使用自己本地的依赖,避免版本不一致。

  • 确认web.xml的配置是否正确
    检查WEB-INF/web.xml里的监听器配置,确保类名拼写完全正确:

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    

    有没有少打字母或者大小写错误,这个很容易被忽略。

内容的提问来源于stack exchange,提问作者Issam Bakrim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:26:05