개발 Error

[Spring Webflux] Unable to load io.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProvider, fallback to system defaults. This may result in incorrect DNS resolutions on MacOS. 에러 처리

curiousKidd 2025. 3. 20. 09:12
반응형

프로젝트 구조

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

에러 발생

  • java, spring boot, gradle 등 프로젝트 주요 라이브러리의 버전업 후, 프로젝트 boot시에 에러가 발생하는 것을 발견

2025-03-20 08:53:13.537 ERROR [           main] i.n.resolver.dns.DnsServerAddressStreamProviders   io.netty.resolver.dns.DnsServerAddressStreamProviders.<clinit>(DnsServerAddressStreamProviders.java:79) : Unable to load io.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProvider, fallback to system defaults. This may result in incorrect DNS resolutions on MacOS. Check whether you have a dependency on 'io.netty:netty-resolver-dns-native-macos'. Use DEBUG level to see the full stack: java.lang.UnsatisfiedLinkError: failed to load the required native library

원인

Mac os의 경우 특정 라이브러리를 찾을 수 없다는 오류로 보입니다...

열심히 구글링해봤고, 같은 오류로 이미 많은 사람들의 논의한 글을 찾을 수 있었습니다.
netty 의 깃허브 이슈중에서, 같은 오류를 가지고 논의한 글입니다.
요약하면, 애플실리콘의 제품의 경우 특정 라이브러리를 추가해주면 해결된다는 글이었습니다.

해결방법

  • "io.netty:netty-resolver-dns-native-macos:4.1.94.Final:osx-aarch_64"
  • 해당 라이브러리를 추가해주면 간단히 해결되었습니다!

다만 특정 os일때만 발생하는 오류이므로, if문으로 조건을 지정하여 사용해주어서, Os의 종속되게 설정하였습니다.

fun isAppleSilicon() = System.getProperty("os.name") == "Mac OS X" && System.getProperty("os.arch") == "aarch64"

if (isAppleSilicon()) {
        runtimeOnly("io.netty:netty-resolver-dns-native-macos:4.1.94.Final:osx-aarch_64")
}
반응형