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

未使用Maven的Spring MVC项目出现DispatcherServlet类找不到异常

解决Web application threw load() exception java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet

这个错误的核心原因很明确:你的Web容器(比如Tomcat)在运行时找不到Spring MVC的核心DispatcherServlet类——虽然你在IDE中把jar包添加到了构建路径,但这只满足编译需求,Web应用运行时需要的jar包必须放在WEB-INF/lib目录下,容器才会加载它们。

下面是具体的解决步骤:

1. 确认jar包的部署位置

  • 找到你项目的WEB-INF/lib目录,检查是否包含Spring MVC相关的核心jar包:
    • spring-webmvc.jar(必须有,DispatcherServlet就在这个包里)
    • 依赖的其他Spring jar包:spring-web.jar、spring-context.jar、spring-beans.jar、spring-core.jar等
  • 如果这些jar包不在WEB-INF/lib里,手动将它们复制到该目录下。

2. 检查IDE的部署配置(针对Eclipse/IDEA)

Eclipse:

右键你的项目 → Properties → Deployment Assembly,确认所有需要的Spring jar包都被添加到部署列表中(这样IDE在部署项目时会自动把jar包复制到WEB-INF/lib)。如果没有,点击Add → Java Build Path Entries,选择对应的jar包添加进去。

IDEA:

打开File → Project Structure → Artifacts,找到你的Web应用Artifact,展开WEB-INF/lib节点,确认包含所有Spring相关jar包。如果缺少,点击右侧的+按钮,选择Library Files,添加对应的Spring库。

3. 检查版本兼容性

你的Spring配置文件中使用的是3.0版本的schema(spring-beans-3.0.xsd),确保你使用的Spring jar包也是3.x版本,版本不匹配也可能导致类加载问题。

4. 检查配置文件的拼写错误

看你提供的web.xml代码,<servlet-class>标签里的内容有换行拆分,要确保类名完整且正确,修正为:

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

附:你提供的配置文件格式化版本

Spring DispatcherServlet配置文件(spring-servlet.xml)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-3.0.xsd">

    <context:component-scan base-package="com.controllers"></context:component-scan>

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>

    <bean id="ds" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
        <property name="url" value="jdbc:mysql://localhost:3306/springmvc"></property>
        <property name="username" value="root"></property>
        <property name="password" value="password"></property>
    </bean>

    <bean id="jt" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="ds"></property>
    </bean>

    <bean id="dao" class="com.dao.EmpDao">
        <property name="template" ref="jt"></property>
    </bean>
</beans>

web.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
        http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

    <servlet>
        <servlet-name>spring</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>spring</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:53:35