-
Notifications
You must be signed in to change notification settings - Fork 814
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
java.lang.NoClassDefFoundError: software/amazon/awssdk/utils/Lazy #4075
Comments
|
You don't even have to use my modified code to see the issue. Just take the code generated by Secrets Manager as-is and try running it. You will run into this error // Use this code snippet in your app. // Make sure to import the following packages in your code public static void getSecret() {
} |
Looking at your pom.xml, you are using different versions for different SDK modules, this is probably the root cause: We recommend using the BOM artifact to avoid this problem, check more info in our Dev Guide - https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/setup-project-maven.html#sdk-as-dependency |
OK. After using the BOM, it worked. Thanks. Closing the issue |
|
Describe the bug
Get the following exception, when running the below code
Start Exception
Exception in thread "main" java.lang.NoClassDefFoundError: software/amazon/awssdk/utils/Lazy
at software.amazon.awssdk.auth.credentials.internal.LazyAwsCredentialsProvider.(LazyAwsCredentialsProvider.java:36)
at software.amazon.awssdk.auth.credentials.internal.LazyAwsCredentialsProvider.create(LazyAwsCredentialsProvider.java:40)
at software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider.createChain(DefaultCredentialsProvider.java:71)
at software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider.(DefaultCredentialsProvider.java:53)
at software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider.(DefaultCredentialsProvider.java:45)
at activemq.producer.SecretsManagerDecoder.getSecret(SecretsManagerDecoder.java:15)
at activemq.producer.SecretsManagerDecoder.main(SecretsManagerDecoder.java:37)
Caused by: java.lang.ClassNotFoundException: software.amazon.awssdk.utils.Lazy
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
... 7 more
End Exception
Start Code
package activemq.producer;
import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider;
import software.amazon.awssdk.services.secretsmanager.SecretsManagerClient;
import software.amazon.awssdk.services.secretsmanager.model.GetSecretValueRequest;
import software.amazon.awssdk.services.secretsmanager.model.GetSecretValueResponse;
public class SecretsManagerDecoder {
}
End Code*
Begin POM File
4.0.0 com.indranil.samples.java.activemq json-activemq-producer 0.0.1-SNAPSHOT UTF-8 11 11 com.amazonaws aws-lambda-java-core 1.2.1 com.amazonaws aws-lambda-java-events 3.11.0 com.google.code.gson gson 2.8.9 software.amazon.msk aws-msk-iam-auth 1.0.0 org.apache.kafka kafka-clients 3.4.0 org.apache.logging.log4j log4j-api [2.17.1,) org.apache.logging.log4j log4j-core [2.17.1,) org.apache.logging.log4j log4j-slf4j18-impl [2.17.1,) org.junit.jupiter junit-jupiter-api 5.6.0 test org.junit.jupiter junit-jupiter-engine 5.6.0 test software.amazon.awssdk regions 2.4.3 software.amazon.awssdk secretsmanager 2.15.80 software.amazon.awssdk utils 2.10.49 com.amazonaws aws-java-sdk-ec2 1.12.483 maven-surefire-plugin 2.22.2 org.apache.maven.plugins maven-shade-plugin 3.2.2 false package shade org.apache.maven.plugins maven-compiler-plugin 3.8.1End POM File*
To reproduce, create a secret in Secrets Manager by the name "AmazonMQCredentials" and create some secret inside it, eg. user = admin
Then run the above code.
Expected Behavior
Code should run and print out the value of the secret from Secrets Manager
Current Behavior
Exception in thread "main" java.lang.NoClassDefFoundError: software/amazon/awssdk/utils/Lazy
at software.amazon.awssdk.auth.credentials.internal.LazyAwsCredentialsProvider.(LazyAwsCredentialsProvider.java:36)
at software.amazon.awssdk.auth.credentials.internal.LazyAwsCredentialsProvider.create(LazyAwsCredentialsProvider.java:40)
at software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider.createChain(DefaultCredentialsProvider.java:71)
at software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider.(DefaultCredentialsProvider.java:53)
at software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider.(DefaultCredentialsProvider.java:45)
at activemq.producer.SecretsManagerDecoder.getSecret(SecretsManagerDecoder.java:15)
at activemq.producer.SecretsManagerDecoder.main(SecretsManagerDecoder.java:37)
Caused by: java.lang.ClassNotFoundException: software.amazon.awssdk.utils.Lazy
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
... 7 more
Reproduction Steps
To reproduce, create a secret in Secrets Manager by the name "AmazonMQCredentials" and create some secret inside it, eg. user = admin
Then run the above code.
Possible Solution
No response
Additional Information/Context
POM File
4.0.0 com.indranil.samples.java.activemq json-activemq-producer 0.0.1-SNAPSHOT UTF-8 11 11 com.amazonaws aws-lambda-java-core 1.2.1 com.amazonaws aws-lambda-java-events 3.11.0 com.google.code.gson gson 2.8.9 software.amazon.msk aws-msk-iam-auth 1.0.0 org.apache.kafka kafka-clients 3.4.0 org.apache.logging.log4j log4j-api [2.17.1,) org.apache.logging.log4j log4j-core [2.17.1,) org.apache.logging.log4j log4j-slf4j18-impl [2.17.1,) org.junit.jupiter junit-jupiter-api 5.6.0 test org.junit.jupiter junit-jupiter-engine 5.6.0 test software.amazon.awssdk regions 2.4.3 software.amazon.awssdk secretsmanager 2.15.80 software.amazon.awssdk utils 2.10.49 com.amazonaws aws-java-sdk-ec2 1.12.483 maven-surefire-plugin 2.22.2 org.apache.maven.plugins maven-shade-plugin 3.2.2 false package shade org.apache.maven.plugins maven-compiler-plugin 3.8.1AWS Java SDK version used
2 (refer POM file)
JDK version used
openjdk version "17.0.7" 2023-04-18 LTS OpenJDK Runtime Environment Corretto-17.0.7.7.1 (build 17.0.7+7-LTS) OpenJDK 64-Bit Server VM Corretto-17.0.7.7.1 (build 17.0.7+7-LTS, mixed mode, sharing)
Operating System and version
NAME="Amazon Linux" VERSION="2" ID="amzn" ID_LIKE="centos rhel fedora" VERSION_ID="2" PRETTY_NAME="Amazon Linux 2" ANSI_COLOR="0;33" CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2" HOME_URL="https://amazonlinux.com/"
The text was updated successfully, but these errors were encountered: