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

Spring Boot+Gradle中ServletRequestAttributes源码字节码不匹配问题求助

问题解决思路及方案

核心问题分析

你的问题根源在于依赖冲突与版本不兼容:

  • Spring Boot 3.1.4基于Spring 6.x,但你引入的springfox-swagger2:2.9.2仅支持Spring Boot 2.x及以下版本,会导致类加载时出现字节码与源码不匹配的问题。
  • 同时引入spring-boot-starter-webflux和spring-webmvc,这是两个互斥的Web栈,会引发类路径冲突。
  • 手动添加的org.eclipse.jetty:jetty-http:9.4.19.v20190610版本过旧,与Spring Boot 3.x的依赖版本不兼容。

具体解决步骤

1. 修正build.gradle依赖配置

移除冲突、过时的依赖,统一Web栈,替换Swagger为Spring Boot 3兼容的版本:

plugins {
    id 'java'
    id 'org.springframework.boot' version '3.1.4'
    id 'io.spring.dependency-management' version '1.1.3'
}

group = 'com.demo'
version = '0.0.1-SNAPSHOT'

java {
    sourceCompatibility = '17'
}

configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
}

repositories {
    mavenCentral()
}

dependencies {
    // 选择Spring MVC作为Web栈(REST API推荐)
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.springframework:spring-jdbc'

    implementation 'org.springframework.security:spring-security-web'

    // 替换Springfox为Spring Boot 3兼容的SpringDoc OpenAPI
    implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0'

    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    testImplementation 'org.mockito:mockito-core'

    compileOnly 'org.projectlombok:lombok'
    developmentOnly 'org.springframework.boot:spring-boot-devtools'
    annotationProcessor 'org.projectlombok:lombok'
}

tasks.named('test') {
    useJUnitPlatform()
}

2. 彻底清理缓存并同步项目

  • 执行Gradle清理命令:./gradlew clean build --refresh-dependencies
  • 清理IDE缓存(以IntelliJ为例):File -> Invalidate Caches...,勾选"Clear file system cache and local history"后重启IDE
  • 重新同步Gradle项目:点击IDE右侧Gradle面板的"Refresh"按钮

3. 验证代码

修正依赖后,((ServletWebRequest) request).getRequest().getRequestURI()的getRequestURI()方法应该能正常解析,因为Spring 6.x中HttpServletRequest的该方法是存在的,之前的报错是依赖冲突导致的类加载异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 07:07:43