본문 바로가기

Dev & Tip/Spring

Spring-boot-webflux netty로 실행 안되는 증상

webflux 프로젝트를 구성하고 실행해봤더니 tomcat으로 실행되고 있어 구글링과 spring initializr를 통해 알게 된 사실

hateoas 기능을 무심코 넣었더니 netty기반으로 실행이 안되었다. 

삽질로 webflux의 Dependency exclude 하면서 tomcat, undertow 걸어보고  난리를 쳤지만, 그 문제가 아니었던 것.

다른 하나로는 swagger module인 springfox 나 springdoc-openapi도 영향을 준다고 한다. 

다행히 springdoc-openapi-webflux를 사용하면 netty 기반으로 서버가 동작하는 것을 확인했다.

아래는 gradle 코드.

dependencies {
    dependencies {
        implementation 'org.springframework.boot:spring-boot-starter-webflux'
        implementation 'org.springframework.boot:spring-boot-starter-data-r2dbc'
        implementation 'org.springframework.boot:spring-boot-starter-security'
        implementation 'org.springframework.boot:spring-boot-starter-oauth2-resource-server'
//        implementation 'org.springframework.boot:spring-boot-starter-hateoas' webflux 지원 안함
        implementation 'org.springframework.boot:spring-boot-starter-actuator'
        implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
        implementation 'org.springdoc:springdoc-openapi-webflux-ui:1.3.0'

        runtimeOnly 'com.h2database:h2'
        runtimeOnly 'dev.miku:r2dbc-mysql'
        runtimeOnly 'io.r2dbc:r2dbc-h2'
        runtimeOnly 'io.r2dbc:r2dbc-postgresql'
        runtimeOnly 'mysql:mysql-connector-java'
        runtimeOnly 'org.postgresql:postgresql'
        compileOnly 'org.projectlombok:lombok'
        developmentOnly 'org.springframework.boot:spring-boot-devtools'

        annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'
        annotationProcessor 'org.projectlombok:lombok'

        testImplementation('org.springframework.boot:spring-boot-starter-test') {
            exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
        }
        testImplementation 'io.projectreactor:reactor-test'
        testImplementation 'org.springframework.security:spring-security-test'

    }

}

'Dev & Tip > Spring' 카테고리의 다른 글

Spring session data redis 서비스 적용 후기  (0) 2020.12.13
SpringBoot AOP Java 코드로 설정  (0) 2020.11.11