개발 Error

[spring webFlux] reactor.netty.http.client.PrematureCloseException: Connection prematurely closed BEFORE response

curiousKidd 2025. 3. 20. 15:58
반응형

프로젝트 구조

  • Java 21
  • gradle
  • Spring boot 3.X
  • Spring Webflux
  • kotlin

에러발생

  • java, spring boot, gradle 등 프로젝트 주요 라이브러리의 버전업 후, 프로젝트 boot시에 에러가 발생하는 것을 발견
    reactor.netty.http.client.PrematureCloseException: Connection prematurely closed BEFORE response
    

java.lang.NoClassDefFoundError: com/fasterxml/jackson/annotation/JsonTypeInfo$Value ...ETC

```

  • e2e 테스트를 통해서 request를 보냈을 떄,,, controller로 인입되지 않는 것을 확인
  • 오류를 구글링 해봤을 때, M1 시리즈 맥북을 실행할 때 발생하는 오류라고 하는데...
  • runtimeOnly("io.netty:netty-resolver-dns-native-macos:4.1.94.Final:osx-aarch_64")
    • 해당 라이브러리를 추가함
    • 위 라이브러리를 추가하였음에도 해당 오류사항이 고쳐지지 않음

원인

  • com.fasterxml.jackson.module:jackson-module-kotlin:2.17.0 < 해당 라이브러리를 사용중이었습니다.
  • 해당 라이브러리 안에서
  • jackson-databind
  • jackson-annotation
  • jackson-core를 사용중이었는데, 해당 버전이 2.15.3으로 확인됨
  • 그런데 자체적으로 2.17.0을 선언하여서, Databind 오류가 발생함

해결방법

  • 만약 각각의 라이브러리를 선언해서 사용중이라면, 버전을 맞춰주자
  • 만약 통합 라이브러리를 사용중이라면, 개별 라이브러리가 선언되진 않았는지 혹은 다른 라이브러리에서 참조중은 아닌지 확인해보자
  • 나의 경우 통합라이브러리를 사용중이지만, 개별 라이브러리를 선언하여서 발생하였기에 해당 라이브러리 참조문을 삭제하고 정상작동 확인
반응형