Amazon Kinesis KPL SerializationException

时间:2016-03-21 09:19:23

标签: aws-sdk amazon-kinesis amazon-kinesis-kpl

我得到了

2016-03-21 10:17:19.915081] [0x00007f539b023740] [error] [retrier.cc:59] PutRecords failed: {"__type":"SerializationException"}

使用以下Java堆栈跟踪:

Caused by: com.amazonaws.services.kinesis.producer.UserRecordFailedException
at com.amazonaws.services.kinesis.producer.KinesisProducer$MessageHandler.onPutRecordResult(KinesisProducer.java:188)
at com.amazonaws.services.kinesis.producer.KinesisProducer$MessageHandler.access$000(KinesisProducer.java:127)
at com.amazonaws.services.kinesis.producer.KinesisProducer$MessageHandler$1.run(KinesisProducer.java:134)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

有什么问题?

1 个答案:

答案 0 :(得分:0)

在我们的案例中,原因是PartitionKey包含引号字符(")。这不是documentation禁止的,而是KPL中c ++代码中的“字符串注入”问题。因此,在调用kp.addUserRecord(streamName, partitionKey, data);中,请确保partitionKey不包含任何引号字符。