3

我已经纳入从DynamoDB的码流从AWS-dynamodb-例子适配器演示,到我的Maven项目,并且我得到一个运行时错误:为什么我会在amazon-kinesis-client中获取JSONObject上的NoClassDefFoundError?

Exception in thread "Thread-2" java.lang.NoClassDefFoundError: com/amazonaws/util/json/JSONObject 
at com.amazonaws.services.kinesis.leases.impl.Lease.toString(Lease.java:229) 

任何想法,为什么出现这种情况,什么我可以解决它吗?

我的POM文件是这样的:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.aligntech</groupId> 
    <artifactId>dynamodbstream</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>dynamodbstream</name> 
    <url>http://maven.apache.org</url> 

    <properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <maven.compiler.source>1.8</maven.compiler.source> 
     <maven.compiler.target>1.8</maven.compiler.target> 
    </properties> 

    <dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 

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

    <dependency> 
     <groupId>com.amazonaws</groupId> 
     <artifactId>dynamodb-streams-kinesis-adapter</artifactId> 
     <version>LATEST</version> 
    </dependency> 


    </dependencies> 
</project> 
+0

尝试添加'aws-java-sdk-core'的依赖关系 –

+0

试过了。没有运气。我看到aws-java-sdk-core在其最新版本中没有com.amazonaws.util.json.JSONObject类。我想知道它去了哪里? –

+0

感谢您的编辑,Siguza –

回答

7

如果我改变的aws-java-sdk的版本1.10.77的问题得到解决。 看来,版本1.11.0中的kinesis库正在尝试使用已从com.amazonaws.util.json中删除的JSONObject。

0

试试这个配置。适用于我,我认为这是做到这一点的正确方法。借助此配置,您可以与最新的AWS版本保持一致。

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath "io.spring.gradle:dependency-management-plugin:1.0.0.RC2" 
    } 
} 

apply plugin: 'java' 
apply plugin: 'eclipse' 
apply plugin: "io.spring.dependency-management" 

group = 'com.example' 
version = '0.0.1-SNAPSHOT' 
sourceCompatibility = 1.7 

repositories { 
    mavenCentral() 
    maven { 
     url "http://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk" 
    } 

} 

dependencyManagement { 
    imports { 
     mavenBom 'com.amazonaws:aws-java-sdk-bom:1.11.197' 
    } 
} 

dependencies { 

    compile group: 'com.amazonaws', name: 'aws-java-sdk', version: '1.11.197' 
    compile group: 'com.amazonaws', name: 'amazon-kinesis-client', version: '1.8.1' 

    testCompile group: 'junit', name: 'junit', version: '4.12' 
} 
相关问题