突然之间,Springfox Swagger 3.0无法与Spring Webflux一起工作

fgw7neuy  于 2022-11-06  发布在  Spring
关注(0)|答案(5)|浏览(288)

几天前,应用程序正在使用Springfox Swagger 3.0。突然它停止了工作。一周前创建的Jar文件仍然工作,但现在当我们尝试构建一个新的Jar文件时,即使没有任何代码/库更改,它也不工作。我甚至参考了下面的URL,但仍然面临问题。
404 error with swagger-ui and spring webflux
下面给出了我的配置:
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/");
    }
}

当我试图打开swagger页面时,我得到404错误。
您的位置:
有人能帮我吗。先谢谢了。

dvtswwa3

dvtswwa31#

实现最近发生了变化(有关这方面的简要更新,请参见从早期快照迁移)。
现在,用户界面在/swagger-ui端点(而不是/swagger-ui.html)下可用。
您还应该删除@EnableSwagger2WebFlux注解和addResourceHandlers()方法,删除所有springfox依赖项,只添加一个:

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

eh57zj3b2#

Springboot Rest API中的Swagger-3入门
对于新项目
对于Maven:-

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-boot-starter</artifactId>
    <version>3.0.0</version>
</dependency>

对于Gradle:-

implementation "io.springfox:springfox-boot-starter:<version>"

现在没有额外的配置来激活swagger的spring-boot项目像以前一样。如果试图配置与安全,有一些配置。请参阅此article
在swagger版本3中,还删除了@EnableSwagger2注解基本配置。
大多数用户试图使用{host}/swagger-ui.html{host}/swagger-ui查找HTML swagger文档文件,这些文件现在已被删除。

使用{host}/swagger-ui/查看HTML文档

这是GitHub上的sample project link请参阅文档io.springfox

roqulrg3

roqulrg33#

这就是它对我的作用。我使用的是Intelij IDEA,SpringBoot和Maven。
将Swagger依赖项添加为:

<dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>3.0.0</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>3.0.0</version>
    </dependency>

我试着重新加载我的项目,生成源代码和更新文件夹,但是我就是不能安装它。
然后,我还添加了以下依赖项:

<dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-boot-starter</artifactId>
        <version>3.0.0</version>
    </dependency>

而且它工作得很好。而且,我在这里找到了我对问题的结论:
Baeldung
所以最后我在pom.xml文件中得到了这个:

<dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-boot-starter</artifactId>
        <version>3.0.0</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>3.0.0</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>3.0.0</version>
    </dependency>

使用Swagger 3.0在浏览器中查看Swagger UI是
网站地址:
希望对某人有帮助:)

63lcw9qa

63lcw9qa4#

仅使用此依赖项而不使用io.springfox依赖项

<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>

现在没有额外的配置来激活swagger对Spring启动项目像以前一样。
在swagger 3.0.0版中,删除 @Configuration 和@EnableSwagger2以及注解。
请使用{host}/swagger-ui/查看HTML文档,{host}/swagger-ui.html或{host}/swagger-ui这些文档现在已被删除。Schneider

txu3uszq

txu3uszq5#

好吧,在阅读了所有的东西,并尝试了最后,得到了我的swagger-ui上**/swagger-ui/index.html#**
https://github.com/springfox/springfox-demos/tree/master/boot-swagger

相关问题