컴공과컴맹효묘의블로그

[Spring] Swagger Issue "org.springframework.web.servlet.mvc.condition.PatternsRequestCondition.toString()" 본문

개발/버그로그

[Spring] Swagger Issue "org.springframework.web.servlet.mvc.condition.PatternsRequestCondition.toString()"

효묘 2023. 6. 12. 00:06
반응형

Issue

스프링 부트 2.6.5 버전에서 Swagger를 사용하려고 했는데, 다음과 같은 오류가 났다.

Debug Console

Caused by: java.lang.NullPointerException: Cannot invoke "org.springframework.web.servlet.mvc.condition.PatternsRequestCondition.toString()" because the return value of "springfox.documentation.spi.service.contexts.Orderings.patternsCondition(springfox.documentation.RequestHandler)" is null

다음은 build.gradle파일

buid.gradle

plugins {
    id 'java'
    id 'org.springframework.boot' version '2.6.5'
    id 'io.spring.dependency-management' version '1.1.0'
    id 'org.graalvm.buildtools.native' version '0.9.20'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
}

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.projectlombok:lombok:1.18.26'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    developmentOnly 'org.springframework.boot:spring-boot-devtools'

    //Swagger
    implementation group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.9.2'
    implementation group: 'io.springfox', name: 'springfox-swagger2', version: '2.9.2'
}

tasks.named('test') {
    useJUnitPlatform()
}

원인

SpringBoot를 2.6 이상 버전으로 업그레이드 되었을 시 요청 경로를 ControllerHandler에 매칭시키기 위한 무언가가 작동됨,

spring.mvc.pathmatch.matching-strategy 기본값이 ant_path_matcher에서 path_patter_parser로 변경이 되어서 문제가 되는 것.

이를 ant_path_matcher로 변경하면 해결이 될 듯 함.

해결

application.properties파일에서 다음을 입력한다.

spring.mvc.pathmatch.matching-stragey=ant_path_matcher
반응형
Comments