Trouble Shooting

[Spring Boot] Springfox - documentationPluginsBootstrapper 오류

꽁치_로그 2023. 4. 14. 15:10

Spring boot 2.7.3에서 springfox 3.0.0 버전을 이용하기 위해 진행하던 중 아래와 같은 오류가 발생했다.

참 swagger는 버전 이슈가 정말 많은거 같다ㅜㅜ

1. 문제 발생 🤬

Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException
porm.xml - Dependency
1
2
3
4
5
6
7
8
9
10
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-boot-starter</artifactId>
            <version>3.0.0</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>3.0.0</version>
        </dependency>
cs
SwaggerConfig Class
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
@Configuration
@EnableSwagger2
public class SwaggerConfig {
 
    // CONTACT
    private static final Contact DEFAULT_CONTACT = new Contact("Kenneth Lee""http://www.joneconsulting.co.kr","edowon@joneconsulting.co.kr" );
 
    // API INFO
    private static final ApiInfo DEFAULT_API_INFO = new ApiInfo("Awesome API Title",
            "My User management REST API Service",
            "1.0",
            "urn:tos",
            DEFAULT_CONTACT,
            "Apache License Version 2.0",
            "http://www.apache.org/licenses/LICENSE-2.0",
            new ArrayList<>());
 
 
    // PRODUCES AND CONSUMES  --> application.yml
    private static final Set<String> DEFAULT_PRODUCES_AND_CONSUMES = new HashSet<>(
            Arrays.asList("application/json""application/xml"));
 
    // localhost:8088/v2/api-docs
    @Bean
    public Docket DocumentApi(){
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(DEFAULT_API_INFO)
                .produces(DEFAULT_PRODUCES_AND_CONSUMES)
                .consumes(DEFAULT_PRODUCES_AND_CONSUMES);
    }
 
}
 
cs

 

2. 문제 해결 😁

Spring boot 2.6버전 이후 spring.mvc.pathmatch.matching-strategy의 값이 ant_apth_matcher에서 path_pattern_parser로 변경되면서 swagger를 포함한 몇몇 라이브러리가 오류를 발생시킨다고 한다.

현재 저는 Spring boot 2.7.3을 사용중으로 applicaiton.yml 파일에 아래의 코드를 넣어줌으로써 문제를 해결했다.

application.yml
1
2
3
4
spring:
  mvc:
    pathmatch:
      matching-strategy: ant_path_matcher
cs

 

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

정상적으로 동작하는 것을 확인할 수 있다!

요약 👉 Springboot 2.6.x 이상에서 swagger를 사용할 경우, application.yml에  spring: mvc: pathmatch: matching-strategy: ant_path_matcher을 추가하자!

 

반응형