突然 Springfox Swagger 3.0 无法与 spring webflux 一起使用

新手上路,请多包涵

几天前,应用程序正在使用 Springfox Swagger 3.0。突然停止工作。一周前创建的 Jar 文件仍在工作,但现在当我们尝试构建一个新的 Jar 文件时,即使没有任何代码/库更改,它也无法正常工作。我什至参考了以下 URL,但仍然面临问题。

swagger-ui 和 spring webflux 出现 404 错误

下面给出我的配置:

POM 文件:

 <properties>
    <java.version>1.8</java.version>
    <springfox.version>3.0.0-SNAPSHOT</springfox.version>
    <spring.version>2.3.1.RELEASE</spring.version>
</properties>
<repositories>
    <repository>
        <id>spring-libs-milestone</id>
        <name>Spring Milestone Maven Repository</name>
        <url>http://oss.jfrog.org/artifactory/oss-snapshot-local/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-webflux</artifactId>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>${springfox.version}</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-spring-webflux</artifactId>
        <version>${springfox.version}</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>${springfox.version}</version>
    </dependency>
</dependencies>

配置文件:

 @Configuration
@EnableSwagger2WebFlux
public class SwaggerConfiguration implements WebFluxConfigurer {

    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(new ApiInfoBuilder()
                        .description("My Reactive API")
                        .title("My Domain object API")
                        .version("1.0.0")
                        .build())
                .enable(true)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.reactive.controller"))
                .paths(PathSelectors.any())
                .build();

    }

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {

        registry.addResourceHandler("/swagger-ui.html**")
                .addResourceLocations("classpath:/META-INF/resources/");

        registry.addResourceHandler("/webjars/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/");
    }
}

当我尝试打开招摇页面时出现 404 错误。

http://localhost:8080/swagger-ui.html

有人可以帮我弄这个吗。提前致谢。

原文由 Praveen Dhasarathan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 813
1 个回答

实现最近发生了变化(请参阅 从早期快照迁移 以获取对此的简要更新)。

现在 UI 在 /swagger-ui 端点下可用(不是 /swagger-ui.html )。

您还应该删除 @EnableSwagger2WebFlux 注释和 addResourceHandlers() 方法,删除所有 springfox 依赖项并仅添加一个:

 <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-boot-starter</artifactId>
        <version>${springfox.version}</version>
</dependency>

原文由 jrd 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进