升级Spring Boot 3时遭遇WireMock兼容性问题求助
解决Spring Boot 3.0升级后WireMock的
javax.servlet/DispatcherType缺失问题 问题根源
Spring Boot 3.0完成了从Java EE到Jakarta EE的全面迁移,所有Servlet相关API从javax.servlet包切换到了jakarta.servlet包。你使用的wiremock-jre8 2.35.0属于WireMock 2.x系列,该版本完全基于旧的javax.servlet API开发,无法兼容Spring Boot 3.0的Jakarta环境,因此抛出NoClassDefFoundError。
解决方案
升级到WireMock 3.x及以上版本,并使用专门适配Jakarta EE的依赖artifactId:
Maven依赖配置
<dependency> <groupId>com.github.tomakehurst</groupId> <artifactId>wiremock-jre8-jakarta</artifactId> <version>3.0.0</version> <!-- 可替换为最新稳定版 --> <scope>test</scope> </dependency>
Gradle依赖配置
testImplementation 'com.github.tomakehurst:wiremock-jre8-jakarta:3.0.0' // 可替换为最新稳定版
注意事项
- 直接替换原有的
wiremock-jre8依赖为wiremock-jre8-jakarta,无需额外引入Jakarta Servlet依赖(Spring Boot 3.0会自动管理) - 若项目中存在其他基于
javax.servlet的第三方依赖,需同步检查是否有适配Jakarta的版本,避免依赖冲突
内容的提问来源于stack exchange,提问作者Vincent F
相关产品推荐
相关产品推荐

