尝试使用springfox配置访问swagger-ui.html时出现WhiteLabel错误页面

时间:2018-12-03 20:23:06

标签: spring-boot swagger springfox

我正在尝试使用Springfox和以下https://www.baeldung.com/swagger-2-documentation-for-spring-rest-api文档从springboot项目生成Swagger文档。

最初,由于我在应用程序中使用OAuth2,因此出现错误“需要完全授权才能访问资源”。我更改了配置,以允许所有以/swagger-ui.html结尾的请求。

现在,当我尝试在本地访问/swagger-ui.html时,我已经收到“ WhiteLabel错误页面-该应用程序没有针对/ error的显式映射”。

我经历了很多帖子,但是没有一个解决方案对我有用-我没有使用@webmvcconfiguration,它可能会造成干扰。 有人可以帮忙吗?

4 个答案:

答案 0 :(得分:1)

对于Swagger 3.0,URL更改为

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

答案 1 :(得分:0)

swagger-ui.html页面进行了许多调用以获取所有详细信息。如果使用浏览器的开发工具(通常只需按F12键即可打开),您会在“网络”标签中看到失败的请求。您需要允许请求

    "/v2/api-docs",
    "/swagger-resources/**",
    "/swagger-ui.html**",
    "/webjars/**"

springfox docs中有一些信息,请查找“安全性”或“授权”

答案 2 :(得分:0)

  1. 从pom.xml中删除v2依赖项或将其注释掉。

     <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>
    
  2. 添加springfox-boot-starter

     <dependency>
         <groupId>io.springfox</groupId>
         <artifactId>springfox-boot-starter</artifactId>
         <version>3.0.0</version>
     </dependency>
    
  3. 在浏览器中将URL更改为: http:// localhost:8080 / swagger-ui / index.html

URL的一般格式为:

  • http://host/context-path/swagger-ui/index.html 或
  • http:// host / context-path / swagger-ui /

有关更多信息,请检查指向相关文档的此链接: https://springfox.github.io/springfox/docs/snapshot/#changes-in-swagger-ui

答案 3 :(得分:0)

这就是我解决问题的方式。如果有人想看,这是我的详细代码。

https://github.com/xbox2204/SpringBoot-JPA-Swagger

现在,我使用了3.0.0-SNAPSHOT和我从此处创建的最新的spring-boot入门项目:

https://start.spring.io/

  1. 我的pom.xml中,添加了以下依赖项:
    <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>3.0.0-SNAPSHOT</version>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.plugin</groupId>
                    <artifactId>spring-plugin-core</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>3.0.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-boot-starter</artifactId>
            <version>3.0.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.plugin</groupId>
            <artifactId>spring-plugin-core</artifactId>
            <version>2.0.0.RELEASE</version>
        </dependency>

  1. 在我的application.properties中,添加了以下内容:
spring.resources.add-mappings=true
  1. 在SpringBoot Main / Runner类中,我添加了这些注释
@EnableWebMvc
@EnableSwagger2
@SpringBootApplication
  1. 我的Docket返回函数看起来像这样
@Bean
    public Docket productApi() {
        Contact contact =new Contact(
                "Vineet Mishra",
                "https://github.com/xbox2204",
                "whatwillyoudo@withmyemail.com"
        );
        ApiInfo apiInfo= new ApiInfoBuilder().title("VINEET SPRING-BOOT API")
                .description("Spring-Boot for all")
                .termsOfServiceUrl("jUST CHILL!!!")
                .contact(contact)
                .licenseUrl("something@something.com").version("1.0").build();

        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo)
                .select()
                .apis(RequestHandlerSelectors.any())
                .build();
    }
  1. 最后,我从
  2. 访问了我的swagger-ui

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

Image of final result