Springfox swagger-ui.html 未加载

Rôm*_*ato 4 java swagger

我试图访问 swagger ui 页面,但是当我要访问该页面时,出现此错误

此应用程序没有 /error 的显式映射,因此您将其视为后备

错误

我的项目树: 项目

swagger Config 类

@Configuration
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket productApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.aluno"))
                .paths(regex("/api.*"))
                .build()
                .apiInfo(metaInfo());
    }

    private ApiInfo metaInfo() {

        ApiInfo apiInfo = new ApiInfo(
                "Cursos API REST",
                "API REST de registro de alunos.",
                "1.0",
                "Terms of Service",
                new Contact("Romulo Sorato", "https://www.linkedin.com/in/r%C3%B4mulo-sorato-domingos-a6524437/",
                        "romulosorato@hotmail.com"),
                "Apache License Version 2.0",
                "https://www.apache.org/licesen.html", new ArrayList<>()
        );

        return apiInfo;
    }
}
Run Code Online (Sandbox Code Playgroud)

我的 pom.xml

  <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>3.0.0</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>3.0.0</version>
    </dependency>
    <dependency>
        <groupId>javax.validation</groupId>
        <artifactId>validation-api</artifactId>
        <version>2.0.1.Final</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

为什么我无法访问 swagger-ui?

看起来连 tomcat 都启动了。我在 pom.xml 上添加了正确的依赖项

Har*_*han 11

看起来你想使用Springfox3。如果是,请尝试以下更改。

删除 springfox-swagger2 和 springfox-swagger-ui 并在 pom.xml 中添加以下依赖项

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-boot-starter</artifactId>
            <version>3.0.0</version>
        </dependency>
Run Code Online (Sandbox Code Playgroud)

SwaggerConfig - 删除@EnableSwagger2注释

@Configuration
public class SwaggerConfig {

    @Bean
    public Docket productApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.aluno"))
                .paths(PathSelectors.any())
                .build()
                .apiInfo(metaInfo());
    }

    private ApiInfo metaInfo() {

        ApiInfo apiInfo = new ApiInfo(
                "Cursos API REST",
                "API REST de registro de alunos.",
                "1.0",
                "Terms of Service",
                new Contact("Romulo Sorato", "https://www.linkedin.com/in/r%C3%B4mulo-sorato-domingos-a6524437/",
                        "romulosorato@hotmail.com"),
                "Apache License Version 2.0",
                "https://www.apache.org/licesen.html", new ArrayList<>()
        );

        return apiInfo;
    }
}
Run Code Online (Sandbox Code Playgroud)

对于此版本,UI 的 URL 已更改,如下所示:

http://localhost:8080/swagger-ui/index.html
Run Code Online (Sandbox Code Playgroud)

如果您想使用旧版本,那么只需使用版本2.9.2(对我来说效果很好)。您的配置文件或 UI 的 URL 中不需要进行任何其他更改。

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>
Run Code Online (Sandbox Code Playgroud)