尝试访问 swagger-ui.html 时出现“无法加载远程配置”

Getting "Failed to load remote configuration" when trying to access swagger-ui.html

提问人:ATHULYA 提问时间:11/16/2023 最后编辑:ATHULYA 更新时间:11/17/2023 访问量:78

问:

当我尝试访问 swagger API 时,我收到“无法加载远程配置”。我已将springfox swagger升级到springdoc-openapi-starter-webmvc-ui。我正在使用 springboot 版本 3.1.16 和 java 17 。但是,我不确定更新后应将哪些端点添加到白名单中。 注意:我只有一个案卷,所以我添加了 GroupedOpenApi。

   @Bean
    public GroupedOpenApi apiDescription() {
        return GroupedOpenApi.builder()
                .group("Info Service")
                .pathsToMatch("/.*")
                .build();
    }

将上述代码更新为:

 @Bean
    public GroupedOpenApi apiDescription() {
        return GroupedOpenApi.builder().group("Service").pathsToMatch("/.*")
                .packagesToScan("org.springframework.boot").build();
    }

    @Bean
    public OpenAPI customOpenAPI() {
        return new OpenAPI().info(new Info().title(getApiTitle()).description(getApiDescription()).version(version))
                .externalDocs(new ExternalDocumentation().description("swagger"));
    }

现在我能够访问链接:https://addreess/api/v3/api-docs

但是对于链接:https://addreess/api/swagger-ui/index.htmlhttps://addreess/api/swagger-ui.html 它显示 ->> 无法加载远程配置。

以下是我目前的白名单。

 private static final String[] WHITELIST = {
            // -- Swagger UI v2
            "/v2/api-docs", "/swagger-resources", "/swagger-resources/**", "/configuration/ui",
            "/configuration/security", "/swagger-ui.html", "/webjars/**",
            // -- Swagger UI v3 (OpenAPI)
            "/v3/api-docs/**", "/swagger-ui/**"
            // other public endpoints of your API may be appended to this array
    };

聚 甲醛:

<dependencies>         
        <dependency>
            <groupId>org.apache.kafka</groupId>
            <artifactId>kafka-clients</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-oauth2-resource-server</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-core</artifactId>
        </dependency>
    <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-core</artifactId>
            <version>${tomcat-embed.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-el</artifactId>
            <version>${tomcat-embed.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-websocket</artifactId>
            <version>${tomcat-embed.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-annotations-api</artifactId>
        </dependency>
        <dependency>
            <groupId>net.logstash.logback</groupId>
            <artifactId>logstash-logback-encoder</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-prometheus</artifactId>
        </dependency>         
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
        </dependency>
        <dependency>
            <groupId>commons-validator</groupId>
            <artifactId>commons-validator</artifactId>
            <version>1.4.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-collections4</artifactId>
        </dependency>
        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>7.0.4.Final</version>
        </dependency>
        <dependency>
            <groupId>org.agileware</groupId>
            <artifactId>smartunit</artifactId>
            <version>0.10.2</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>com.github.stefanbirkner</groupId>
            <artifactId>system-lambda</artifactId>
            <version>1.2.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.testcontainers</groupId>
            <artifactId>testcontainers</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.testcontainers</groupId>
            <artifactId>kafka</artifactId>
            <scope>test</scope>
        </dependency>
        <!-- Postgres -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
        </dependency>
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.flywaydb</groupId>
            <artifactId>flyway-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.testcontainers</groupId>
            <artifactId>postgresql</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
        <dependency>
            <groupId>jakarta.validation</groupId>
            <artifactId>jakarta.validation-api</artifactId>
        </dependency>
        <dependency>
            <groupId>jakarta.servlet</groupId>
            <artifactId>jakarta.servlet-api</artifactId>
            <scope>test</scope>
        </dependency>
      <dependency>
      <groupId>org.springdoc</groupId>
      <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
      <version>2.2.0</version>
      </dependency>
    </dependencies>
spring-bootswagger swagger-ui springdoc-openapi-ui

评论

0赞 Andrei Lisa 11/16/2023
您能否与您添加的依赖项共享或文件?也添加到白名单pom.xmlbuild.gradle"/swagger-ui.html"
0赞 ATHULYA 11/17/2023
@AndreiLisa 感谢您的回复,请找到我的 pom 文件
0赞 Andrei Lisa 11/17/2023
在检查了您的问题和您提供的代码后,我想您将能够在此 Q/A 中找到问题的解决方案
0赞 Andrei Lisa 11/17/2023
另外,当您启动应用程序时,您会在日志中看到这个消息之王吗?This generated password is for development use only. Your security configuration must be updated before running your application in production.
0赞 ATHULYA 11/17/2023
@AndreiLisa没有,在日志中找不到任何如上所述的消息。但目前我看到类似 ---Servlet.service() for servlet [dispatcherServlet] 在上下文中与路径 [] 抛出异常 [处理程序调度失败:java.lang.OutOfMemoryError:Java 堆空间] 的错误,并带有根本原因

答:

0赞 Andrei Lisa 11/17/2023 #1

作为解决您的问题,只需删除下一个:Configuration

@Bean
    public GroupedOpenApi apiDescription() {
        return GroupedOpenApi.builder().group("Service").pathsToMatch("/.*")
                .packagesToScan("org.springframework.boot").build();
    }

在您的情况下没有必要。

评论

0赞 ATHULYA 11/17/2023
所以只有 OpenApi 就足够了吗?
0赞 Andrei Lisa 11/17/2023
是的,这就足够了。