環境
- AWS SDK for Java S3 1.11.327
- Zulu 11.0.9.1
- M1版 macOS Big Sur 11.2.3
現象
AmazonS3#putObject()
でS3にファイルをアップロードすると、 JAXB is unavailable. Will fallback to SDK implementation which may be less performant
という警告ログが出ます。
原因
JDK 11にはJAXB実装が含まれないからです。JDK 8とかだと、この現象は起こらないはずです。
解決方法
JAXBを明示的に追加すればOKです。
pom.xml
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-bom</artifactId>
<version>1.11.327</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-s3</artifactId>
</dependency>
<!-- この2つ! -->
<dependency>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
<version>2.3.3</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.3.3</version>
<scope>runtime</scope>
</dependency>
</dependencies>
注意点
jakarta.xml.bind-apiやjaxb-implのバージョンは必ず 2.3.3
にしてください。最新の 3.0.0
だと問題は解決しません。
おそらくAWS SDK側が jakarta.*
ネームスペースに対応していないからだと思われます。
参考URL
Issue立てました
「いいね」などよろしくお願いします。