Java 运行时AmazonDynamoDBClientBuilder的NoClassDefFoundError

Java 运行时AmazonDynamoDBClientBuilder的NoClassDefFoundError,java,amazon-web-services,aws-lambda,amazon-dynamodb,aws-sdk,Java,Amazon Web Services,Aws Lambda,Amazon Dynamodb,Aws Sdk,我遇到了以下异常,无法找出到底出了什么问题 START RequestId: 6e561b8c-2fd0-11e8-8bd0-edfc4c9a75aa Version: $LATEST com/amazonaws/services/dynamodbv2/AmazonDynamoDBClientBuilder: **java.lang.NoClassDefFoundError java.lang.NoClassDefFoundError: com/amazonaws/services/dynamo

我遇到了以下异常,无法找出到底出了什么问题

START RequestId: 6e561b8c-2fd0-11e8-8bd0-edfc4c9a75aa Version: $LATEST
com/amazonaws/services/dynamodbv2/AmazonDynamoDBClientBuilder: **java.lang.NoClassDefFoundError
java.lang.NoClassDefFoundError: com/amazonaws/services/dynamodbv2/AmazonDynamoDBClientBuilder**
    at com.tarkshala.dynamodb.StudentDAOImpl.create(StudentDAOImpl.java:12)
    at com.tarkshala.lambda.StudentController.handleRequest(StudentController.java:16)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
Caused by: java.lang.ClassNotFoundException: com.amazonaws.services.dynamodbv2.AmazonDynamoDBClientBuilder
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 6 more
我的pom.xml如下所示:

    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk</artifactId>
        <version>1.11.301</version>
    </dependency>

    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-lambda-java-core</artifactId>
        <version>1.2.0</version>
    </dependency>

亚马逊网站
aws java sdk
1.11.301
亚马逊网站
aws lambda java内核
1.2.0

即使是我的IDE也在解决类定义问题,那么为什么它会在运行时产生问题呢?

从错误消息中可以看出,您试图从Java中实现的Lambda函数中查询DynamoDb

使用基于Java的AWS Lambda函数时,函数代码必须包含所有依赖项。您不能像使用Maven的本地系统那样依赖Lambda从pom.xml解析依赖关系

最常见的方法是生成一个JAR(通常称为“胖JAR”),其中包含代码和代码所需的所有依赖项(通常是类路径中执行代码所需的所有内容)

一旦将依赖项与代码一起部署到Lambda,事情就应该开始按预期工作


请参阅:有关如何

的更多信息,我也面临同样的问题。我在pom中添加了shade插件,并且正在运行mvn包,但是仍然得到相同的错误@KuldeepYadav你是怎么做到的?希望这能对你有所帮助。@KuldeepYadav我不知道我应该从你上面分享的片段中推断出什么。