当前位置: 首页 > 知识库问答 >
问题:

404错误与swagger-ui和spring webflux

楚嘉胜
2023-03-14
    null
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2WebFlux;

@Configuration
@EnableSwagger2WebFlux
public class SwaggerConfig {

    @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.mypackage.service.myobject.controller"))
                .paths(PathSelectors.any())
                .build();

    }
}
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.reactive.config.EnableWebFlux;

@SpringBootApplication
@EnableWebFlux
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.2.1.RELEASE</version>
</parent>

<properties>
    <swagger.version>3.0.0-SNAPSHOT</swagger.version>
</properties>

<dependencies>
    <dependency>
        <groupId>io.projectreactor</groupId>
        <artifactId>reactor-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.integration</groupId>
        <artifactId>spring-integration-webflux</artifactId>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>${swagger.version}</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-spring-webflux</artifactId>
        <version>${swagger.version}</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-spring-integration-webflux</artifactId>
        <version>${swagger.version}</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>${swagger.version}</version>
    </dependency>
</dependencies>

我在Intellij下的debug中运行我的springboot应用程序。我尝试在命令行中运行fat jar:同样的问题。有人知道我的配置有什么问题吗?

谢谢

共有1个答案

王兴庆
2023-03-14

找到了!

我必须为像这样的swagger-ui注册一个webflux资源处理程序。

import org.springframework.context.annotation.Configuration;
import org.springframework.web.reactive.config.ResourceHandlerRegistry;
import org.springframework.web.reactive.config.WebFluxConfigurer;

@Configuration
public class WebfluxConfig implements WebFluxConfigurer {

    @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/");
    }
}

问题解决了!

 类似资料:
  • 我正在尝试包括摇摆到Spring启动Web flux应用程序。我在配置文件中包含了以下代码。它工作正常。但现在它不能与错误一起工作 f90bda5c-2] 出现意外错误(类型 = 未找到,状态 = 404)。组织.springframework.web.server.响应状态异常: 404 NOT_FOUND在组织.springframework.web.reactive.resource.res

  • 调查Springfox和Swagger UI,但我面临一个问题。我正在使用Spring Boot REST示例项目作为我的PoC的基础。我正在运行JDK8,项目利用Gradle。 当我点击“试用”按钮时,我看到了以下内容: 乍一看,由于某种原因,SpringFox/Swagger似乎没有正确地替换{?Name}的占位符。我的问题是,我如何配置它这样做,如果这是事实上的问题,以便我可以成功地测试服务

  • 当我运行下面的程序时,当我访问localhost:8080/swagger-ui.html.我认为所有必需的依赖项(springfox-swagger2、springfox-swagger-用户界面)都已导入并正确配置了swagger。请指导我怎么了... 招摇配置 pom.xml

  • 我正在尝试集成我的Spring Boot版本。 从这篇博文中可以看出,只需添加两个Maven依赖项就很容易了,一切都应该可以正常工作。 因此,我在pom中添加了以下依赖项: 并创建了bean: 在属性文件中,在尝试使其工作时,我得到了以下3个条目: 但是在最后,当访问 或位于的UI页面 我发现一个错误。 我在swagger github页面中发现了这个问题,在stackoverflow中发现了这个

  • 我有一个运行在后端的Node/Express服务器和一个react前端,我正在尝试制作最简单的API——但无论我做什么,我似乎都在post请求中遇到了404错误。我已尝试将代理添加到包中。json,删除代理并在地址i中包含端口。。Ehttp://localhost:5000/createaccount,包括http://localhost:5000只需在post请求中使用“/createaccou

  • 问题内容: 我已经使用在其他地方找到的提示在GAE上建立了一个静态网站,但无法弄清楚如何返回404错误。我的app.yaml文件看起来像 并将所有静态html / jpg文件存储在静态目录下。上面的方法适用于已存在的文件,但如果不存在,则返回空长度的文件。答案可能是编写python脚本以返回404错误,但是如何设置内容以服务已存在的静态文件,但为不存在的文件运行脚本? 这是从开发应用程序服务器上获