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

Spring Boot 3集成springdoc-openapi-ui出现语法错误求助

Swagger UI加载失败问题排查与解决

加载http://localhost:8080/swagger-ui/index.html时,控制台抛出以下错误:

swagger-ui-bundle.js:2 Uncaught SyntaxError: Invalid or unexpected token (at swagger-ui-bundle.js:2:537471)
swagger-ui-standalone-preset.js:2 Uncaught SyntaxError: Invalid or unexpected token (at swagger-ui-standalone-preset.js:2:147026)
swagger-initializer.js:5 Uncaught ReferenceError: SwaggerUIBundle is not defined
at window.onload (swagger-initializer.js:5:3)
window.onload @ swagger-initializer.js:5
load (async)
(anonymous) @ swagger-initializer.js:1

当前pom.xml配置片段:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.1.6</version>
    <relativePath />
</parent>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
    </dependency>
  
    <!-- SWAGGER -->
    <dependency>
        <groupId>org.springdoc</groupId>
        <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
        <version>2.0.0</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

已尝试更换依赖版本、调整插件配置,问题仍未解决。


解决方案

1. 对齐版本兼容性

Spring Boot 3.1.x对应的springdoc-openapi-starter-webmvc-ui推荐版本为2.2.0及以上,2.0.0版本存在兼容性问题。修改pom.xml中的swagger依赖版本:

<dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
    <version>2.2.0</version>
</dependency>

2. 清理缓存并重构

  • 执行mvn clean install清理本地仓库中损坏的依赖包,重新下载完整的swagger-ui静态资源
  • 清空浏览器缓存或使用无痕模式访问,避免加载旧缓存文件

3. 检查静态资源访问配置

若项目自定义了资源拦截器或静态资源路径,需确保swagger-ui资源可被正确访问:

  • 确认application.yml/application.properties中未禁用静态资源映射
  • 若有自定义WebMvcConfigurer,添加swagger资源映射规则:
@Configuration
public class WebConfig implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/swagger-ui/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/springdoc-openapi-ui/");
    }
}

4. 排除冲突依赖

检查是否存在旧版swagger相关依赖(如springfox),若有需排除避免冲突:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <exclusion>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
        </exclusion>
    </exclusions>
</dependency>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 19:42:33