Spring Boot升级problem-spring-web至0.29.1遇NoClassDefFoundError问题
问题原因
problem-spring-web 0.29.x版本已适配Spring Framework 6.x(对应Spring Boot 3.x),而你的项目使用的Spring Boot 2.5.15依赖的是Spring Framework 5.3.x。org.springframework.http.HttpStatusCode是Spring Framework 6.x新增的接口,5.3.x版本中不存在这个类,因此实例化SpringBootProblemHandling时会触发NoClassDefFoundError。
解决方案
方案一:降级problem-spring-web版本
将problem-spring-web降级到适配Spring Boot 2.x的最新稳定版本(比如0.28.0),这是成本最低的解决方式:
- Maven项目修改pom.xml:
<dependency> <groupId>org.zalando</groupId> <artifactId>problem-spring-web</artifactId> <version>0.28.0</version> </dependency> - Gradle项目修改build.gradle:
implementation 'org.zalando:problem-spring-web:0.28.0'
方案二:升级Spring Boot版本
如果必须使用problem-spring-web 0.29.1,需要将Spring Boot升级到3.x版本(如3.0.0及以上),但注意:
- Spring Boot 3.x要求Java 17及以上,需同步升级JDK版本
- 项目中其他依赖也需要适配Spring Boot 3.x,可能涉及大量代码调整
内容的提问来源于stack exchange,提问作者soso
相关产品推荐
相关产品推荐

