1. ホーム
  2. java

[解決済み] Spring Boot 2.0搭載のSwaggerで404エラーページが表示される

2022-02-18 11:40:41

質問

Spring Bootのバージョンを統合しようとしています。 2.0.1.RELEASE スワッガー .

これより ブログ記事 は、2つの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 ビーンです。

@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

を取得します。 page not found のエラーが発生します。

見つけた swaggerのgithubページにあるこの問題 stackoverflowにあるこの質問 を変更することができましたが 404 のエラーが発生します。

解決方法は?

Spring bootのバージョンで動作させることができました。 2.0.4.RELEASE このブログの記事 :

これらの依存関係を追加しました。

<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は、/swagger-ui.html#からアクセスできます。