You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Because the software.amazon.awssdk.crt.s3.S3Client can't be resolved without the reflection hint the application fails with an exception.
Expected Behavior
The native image should run without any issues.
Current Behavior
Application fails with the following message
{"timestamp":"2024-08-13T12:12:48.031+0200","level":"ERROR","thread":"main","logger":"org.springframework.cloud.task.listener.TaskLifecycleListener","message":"An event to end a task has been received for a task that has not yet started.","context":"default"}
Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 's3AsyncClient': Instantiation of supplied bean failed
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.obtainFromSupplier(AbstractAutowireCapableBeanFactory.java:1243)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1180)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:975)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:971)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:625)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:335)
at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:149)
at de.axa.lums.batch.basic.tasks.s3.uploader.S3UploaderApplication.main(S3UploaderApplication.java:28)
at [email protected]/java.lang.invoke.LambdaForm$DMH/sa346b79c.invokeStaticInit(LambdaForm$DMH)
Caused by: java.lang.IllegalStateException: Could not load classes from AWS Common Runtime (CRT) library.software.amazon.awssdk.crt:crt is a required dependency; make sure you have it on the classpath.
at software.amazon.awssdk.services.s3.internal.crt.DefaultS3CrtAsyncClient.validateCrtInClassPath(DefaultS3CrtAsyncClient.java:403)
at software.amazon.awssdk.services.s3.internal.crt.DefaultS3CrtAsyncClient.initializeS3CrtAsyncHttpClient(DefaultS3CrtAsyncClient.java:153)
at software.amazon.awssdk.services.s3.internal.crt.DefaultS3CrtAsyncClient.initializeS3AsyncClient(DefaultS3CrtAsyncClient.java:142)
at software.amazon.awssdk.services.s3.internal.crt.DefaultS3CrtAsyncClient.<init>(DefaultS3CrtAsyncClient.java:83)
at software.amazon.awssdk.services.s3.internal.crt.DefaultS3CrtAsyncClient.<init>(DefaultS3CrtAsyncClient.java:77)
at software.amazon.awssdk.services.s3.internal.crt.DefaultS3CrtAsyncClient$DefaultS3CrtClientBuilder.build(DefaultS3CrtAsyncClient.java:313)
at software.amazon.awssdk.services.s3.internal.crt.DefaultS3CrtAsyncClient$DefaultS3CrtClientBuilder.build(DefaultS3CrtAsyncClient.java:184)
at io.awspring.cloud.autoconfigure.s3.S3CrtAsyncClientAutoConfiguration.s3AsyncClient(S3CrtAsyncClientAutoConfiguration.java:82)
at io.awspring.cloud.autoconfigure.s3.S3CrtAsyncClientAutoConfiguration__BeanDefinitions.lambda$getSAsyncClientInstanceSupplier$1(S3CrtAsyncClientAutoConfiguration__BeanDefinitions.java:41)
at org.springframework.util.function.ThrowingBiFunction.apply(ThrowingBiFunction.java:68)
at org.springframework.util.function.ThrowingBiFunction.apply(ThrowingBiFunction.java:54)
at org.springframework.beans.factory.aot.BeanInstanceSupplier.lambda$get$2(BeanInstanceSupplier.java:206)
at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:58)
at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:46)
at org.springframework.beans.factory.aot.BeanInstanceSupplier.invokeBeanSupplier(BeanInstanceSupplier.java:219)
at org.springframework.beans.factory.aot.BeanInstanceSupplier.get(BeanInstanceSupplier.java:206)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.obtainInstanceFromSupplier(DefaultListableBeanFactory.java:949)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.obtainFromSupplier(AbstractAutowireCapableBeanFactory.java:1237)
... 16 more
Caused by: java.lang.ClassNotFoundException: software.amazon.awssdk.crt.s3.S3Client
at org.graalvm.nativeimage.builder/com.oracle.svm.core.hub.ClassForNameSupport.forName(ClassForNameSupport.java:143)
at org.graalvm.nativeimage.builder/com.oracle.svm.core.hub.ClassForNameSupport.forName(ClassForNameSupport.java:106)
at [email protected]/java.lang.Class.forName(DynamicHub.java:1387)
at [email protected]/java.lang.Class.forName(DynamicHub.java:1352)
at [email protected]/java.lang.Class.forName(DynamicHub.java:1346)
at software.amazon.awssdk.core.internal.util.ClassLoaderHelper.loadClass(ClassLoaderHelper.java:114)
at software.amazon.awssdk.services.s3.internal.crt.DefaultS3CrtAsyncClient.validateCrtInClassPath(DefaultS3CrtAsyncClient.java:401)
... 33 more
Reproduction Steps
Build an application with AWS SDK V2 and AWS CRT and use S3AsyncClient.crtBuilder() with S3TransferManager.builder().s3Client(s3AsyncClient).build()
It should be Java SDK to solve the reflection issue. I talked with Java SDK team, and they agreed on this. Can you make a github issue at their repo instead?
Describe the bug
Because the
software.amazon.awssdk.crt.s3.S3Client
can't be resolved without the reflection hint the application fails with an exception.Expected Behavior
The native image should run without any issues.
Current Behavior
Application fails with the following message
Reproduction Steps
Build an application with AWS SDK V2 and AWS CRT and use
S3AsyncClient.crtBuilder()
withS3TransferManager.builder().s3Client(s3AsyncClient).build()
Possible Solution
Add the following lines to
reflect-config.json
Additional Information/Context
No response
aws-crt-java version used
0.30.7
Java version used
bellsoft-liberica-vm-openjdk22.0.1+10-24.0.1+1-linux-amd64
Operating System and version
Linux
The text was updated successfully, but these errors were encountered: