2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

KINTO Technologies - トヨタ車のサブスク「KINTO」開発中!Advent Calendar 2021

Day 17

Apple Silicon M1でMacOSDnsServerAddressStreamProviderがロードできずエラーとなる

Last updated at Posted at 2021-12-16

はじめに

KINTOテクノロジーズでは開発端末としてWindows、Macを選択することができ
Macに関してはIntelチップ搭載のMacBook Proが貸与されます。

2021年はApple M1 Pro、Maxチップ搭載のMacBook Proが発売されたこともあり
開発端末にApple Silicon M1が増えることに開発者一同熱い眼差しを向けています。

今回は開発端末の選択肢に増えるであろうApple Silicon M1の技術検証時に発生したエラーのお話です。

事象

KINTOテクノロジーズのいくつかのシステムではSpring Boot 2.5.0が利用されています。
今回技術検証をしたシステムは、テストコード内で外部サービスのAPIを利用する部分でテスト効率化のために
Spring WebFluxを利用していました。

Spring WebFluxではデフォルトでNettyが利用されますが、Spring Boot 2.5.0ではバージョンを指定しない場合、
io.netty:netty-resolver-dns-native-macos:4.1.63.Final
が依存関係として利用されます。
このバージョンがApple Silicon M1に対応していなかったため
io.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProviderがロードできないエラーが発生しました。

ERROR io.netty.resolver.dns.DnsServerAddressStreamProviders - Unable to load io.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProvider, fallback to system defaults. This may result in incorrect DNS resolutions on MacOS.

対応

1.Spring Bootを最新バージョンに上げましょう。
2021/11/19にSpring Boot 2.6がリリースされましたが、依存バージョンを確認すると netty-resolver-dns-native-macos は 4.1.70.Finalとなっており、Apple Silicon M1に対応したものがデフォルトで利用されます。

2. 依存バージョンを指定しましょう。
プロダクション環境で運用されているシステムの場合、バージョンアップは計画的に実施されるケースが多いため
すぐにSpring Bootの最新バージョンに上げるのは難しいと思います。
その場合はnetty-resolver-dns-native-macosの依存バージョンを指定しましょう。

dependencies {
    testImplementation 'io.netty:netty-resolver-dns-native-macos:4.1.70.Final:osx-aarch_64'
}

最後に

ミドルウェアのバージョンアップは計画的に。

参考

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?