java - Swagger with Spring Boot 2.0 导致 404 错误页面

标签 java spring-boot swagger

我正在尝试将我的 Spring Boot 版本 2.0.1.RELEASESwagger 集成.

从这里blog post似乎只需添加两个 Maven 依赖项就很容易,一切都应该可以正常工作。

所以我在pom中添加了以下依赖:

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.8.0</version>
</dependency>

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

并创建了 SwaggerConfig bean:

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket api() {
        Docket docket = new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any())
                .build();
        return docket;
    }
}

在属性文件中,我在尝试使其工作的过程中得到了这 3 个条目:

spring.application.name=cat-service
management.server.servlet.context-path=/cat-service
server.servlet.contextPath=/cat-service

但是最后访问的时候

http://localhost:8080/cat-service/api/v2/api-docs

或 UI 页面位于

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

我收到一个找不到页面错误。

我找到了 this issues in the swagger github pagethis question in stackoverflow但我无法更改我的 404 错误。

最佳答案

我能够让它与 Spring boot 版本 2.0.4.RELEASEthis blog post 一起工作:

我添加了这些依赖项:

<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>

还有这个配置文件:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
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.EnableSwagger2;

@Configuration
@EnableSwagger2
public class SpringFoxConfig {
    @Bean
    public Docket apiDocket() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any())
                .build();
    }
}

它奏效了。

可以在/swagger-ui.html 访问 Swagger UI#

关于java - Swagger with Spring Boot 2.0 导致 404 错误页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50618350/

相关文章:

java - Spring Boot - Swagger - Swagger 不会将标准值更改为多模块项目的 ApiInfo/GlobalResponse

java - struts2 开关语句

spring-boot - 如何为开发目的禁用 Spring Cloud Stream 绑定(bind)?

java - Tomcat 和 Servlet 问题

java - :if statement in Thymeleaf 的 OR 条件

java - Spring @Value 注解方法,当属性不可用时使用默认值

json - 在不破坏 JSON 格式的情况下更新 JSON 文件

laravel - Swagger UI requestInterceptor抛出“"Cannot set property ' X-CSRF-TOKEN' of undefined”错误

Java将Json字符串转为数组

Java 8 Stream 在 map 内部使用 map 时关闭