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

如何解决Servlet.init() for servlet [dispatcher]抛出的异常问题

解决Spring MVC中requestMappingHandlerAdapter Bean创建失败问题

错误栈信息

javax.servlet.ServletException: Servlet.init() for servlet [dispatcher] threw exception
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:528)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:798)
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:810)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
java.lang.Thread.run(Thread.java:748)

根本原因分析

从嵌套异常链可以定位核心问题:

org.springframework.beans.factory.BeanCreationException: 创建在org.springframework.web.servlet.config.annotation.DelegatingWebMvcConfiguration中定义的名为'requestMappingHandlerAdapter'的Bean时出错:通过工厂方法实例化Bean失败;嵌套异常为org.springframework.beans.BeanInstantiationException: 无法实例化[org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter]:工厂方法'requestMappingHandlerAdapter'抛出异常;嵌套异常为java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/exc/InvalidDefinitionException

最终根源是java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.exc.InvalidDefinitionException——你的项目缺失了Jackson Databind相关依赖,导致Spring初始化requestMappingHandlerAdapter这个核心MVC组件时,找不到序列化/反序列化所需的Jackson类。

解决方案

根据项目构建工具,添加对应的Jackson Databind依赖:

Maven项目(修改pom.xml)

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.15.2</version> <!-- 建议使用与Spring版本兼容的稳定版 -->
</dependency>

Gradle项目(修改build.gradle)

implementation 'com.fasterxml.jackson.core:jackson-databind:2.15.2'

注意:版本号尽量与项目中Spring框架版本保持兼容,避免依赖冲突。如果不确定兼容版本,可通过Spring官方文档或依赖管理插件(如Maven的dependencyManagement)统一管控版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:17:12