学习亚马逊Kinesis Streams开发 - java.lang.NoClassDefFoundError:com/amazonaws/util/json/JSONObject
问题描述:
我想在这里找到的Kinesis Streams上运行以下AWS教程,http://docs.aws.amazon.com/streams/latest/dev/learning-kinesis-module-one-consumer.html,该项目的Producer部分(StockTradesWriter .java)工作得很好,但当我尝试运行项目的Consumer部分(StockTradesProcessor.java)时,出现以下错误。学习亚马逊Kinesis Streams开发 - java.lang.NoClassDefFoundError:com/amazonaws/util/json/JSONObject
Jun 13, 2016 6:03:36 PM com.amazonaws.services.kinesis.samples.stocktrades.processor.StockTradesProcessor main
SEVERE: Caught throwable while processing data.
java.lang.NoClassDefFoundError: com/amazonaws/util/json/JSONObject
at com.amazonaws.services.kinesis.leases.impl.Lease.toString(Lease.java:229)
at java.lang.String.valueOf(String.java:2994)
at java.lang.StringBuilder.append(StringBuilder.java:131)
at com.amazonaws.services.kinesis.clientlibrary.lib.worker.ShardSyncer.determineNewLeasesToCreate(ShardSyncer.java:345)
at com.amazonaws.services.kinesis.clientlibrary.lib.worker.ShardSyncer.syncShardLeases(ShardSyncer.java:121)
at com.amazonaws.services.kinesis.clientlibrary.lib.worker.ShardSyncer.checkAndCreateLeasesForNewShards(ShardSyncer.java:88)
at com.amazonaws.services.kinesis.clientlibrary.lib.worker.ShardSyncTask.call(ShardSyncTask.java:68)
at com.amazonaws.services.kinesis.clientlibrary.lib.worker.MetricsCollectingTaskDecorator.call(MetricsCollectingTaskDecorator.java:49)
at com.amazonaws.services.kinesis.clientlibrary.lib.worker.Worker.initialize(Worker.java:395)
at com.amazonaws.services.kinesis.clientlibrary.lib.worker.Worker.run(Worker.java:330)
at com.amazonaws.services.kinesis.samples.stocktrades.processor.StockTradesProcessor.main(StockTradesProcessor.java:117)
Caused by: java.lang.ClassNotFoundException: com.amazonaws.util.json.JSONObject
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 11 more
所以这个类,http://javadox.com/com.amazonaws/aws-java-sdk-core/1.9.26/com/amazonaws/util/json/JSONObject.html,由于某种原因无法找到。
我在Eclipse中使用Java 8运行此操作,并且包含Kinesis客户端库(KCL)版本1.6.3和适用于Java版本1.11.7的AWS开发工具包。这里是我的Eclipse项目的屏幕截图:
注:下载并运行这个程序,你可以找到你需要这个前提页面上的所有内容:http://docs.aws.amazon.com/streams/latest/dev/learning-kinesis-module-one-begin.html
答
升级到KCL V1.7.2似乎已经解决了对我来说。我正在使用AWS SDK 1.11.58。
不知道当问题被引入或固定
这是不是一个真正的答案看,如果你需要使用1.11.x的具体原因,它并没有解决问题 –
没有?它确实解决了我的问题... –
有人请为1.11.x提供解决方案 – masSdev