반응형
프로젝트 구조
- 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 오류가 발생함
해결방법
- 만약 각각의 라이브러리를 선언해서 사용중이라면, 버전을 맞춰주자
- 만약 통합 라이브러리를 사용중이라면, 개별 라이브러리가 선언되진 않았는지 혹은 다른 라이브러리에서 참조중은 아닌지 확인해보자
- 나의 경우 통합라이브러리를 사용중이지만, 개별 라이브러리를 선언하여서 발생하였기에 해당 라이브러리 참조문을 삭제하고 정상작동 확인
반응형