2

I am trying to put a record in Kinesis with the following code snipper:

  AmazonKinesisClientBuilder clientBuilder = AmazonKinesisClientBuilder.standard();
  clientBuilder.setCredentials(new EnvironmentVariableCredentialsProvider());
  clientBuilder.setEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(
      "http://localhost:4568",
      Regions.US_WEST_2.getName()));

  AmazonKinesis kinesisClient = clientBuilder.build();

  PutRecordRequest putRecordRequest = new PutRecordRequest();
  putRecordRequest.setStreamName("test");
  putRecordRequest.setData(ByteBuffer.wrap(String.format("testData-%d", 1).getBytes()));
  putRecordRequest.setPartitionKey(String.format("partitionKey-%d", 1));
  kinesisClient.putRecord(putRecordRequest);

But, I am getting the following error in the log:

Unable to unmarshall exception response with the unmarshallers provided (Service: AmazonKinesis; Status Code: 502; Error Code: null; Request ID: null)

In my pom.xml, relevant dependencies are as follows:

     <dependency>
        <groupId>com.fasterxml.jackson.datatype</groupId>
        <artifactId>jackson-datatype-hibernate5</artifactId>
        <version>2.11.0</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.datatype</groupId>
        <artifactId>jackson-datatype-hppc</artifactId>
        <version>2.11.0</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.datatype</groupId>
        <artifactId>jackson-datatype-jsr310</artifactId>
        <version>2.11.0</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.module</groupId>
        <artifactId>jackson-module-afterburner</artifactId>
        <version>2.11.0</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.datatype</groupId>
        <artifactId>jackson-datatype-jdk8</artifactId>
        <version>2.11.0</version>
    </dependency>
     <dependency>
        <groupId>com.fasterxml.jackson.dataformat</groupId>
        <artifactId>jackson-dataformat-csv</artifactId>
        <version>2.11.0</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.dataformat</groupId>
        <artifactId>jackson-dataformat-xml</artifactId>
        <version>2.11.0</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.dataformat</groupId>
        <artifactId>jackson-dataformat-cbor</artifactId>
        <version>2.11.0</version>
    </dependency>
    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk-kinesis</artifactId>
        <version>1.11.863</version>
    </dependency>

I have no idea regarding how to fix this. Could anyone please help ?

EDIT:

I am running Kinesis through localstack. In localstack side, I am getting following error:

2020-09-17T14:34:42:ERROR:localstack.services.generic_proxy: Error forwarding request: 'utf-8' codec can't decode byte 0xbf in position 0: invalid start byte Traceback (most recent call last):
  File "/opt/code/localstack/localstack/services/generic_proxy.py", line 247, in forward
    listener_result = listener.forward_request(method=method,
  File "/opt/code/localstack/localstack/services/kinesis/kinesis_listener.py", line 28, in forward_request
    data = json.loads(to_str(data or '{}'))
  File "/opt/code/localstack/localstack/utils/common.py", line 735, in to_str
    return obj.decode(encoding, errors) if isinstance(obj, six.binary_type) else obj
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbf in position 0: invalid start byte

In this conext, I have gone through this: Getting an AmazonKinesisException Status Code: 502 when using LocalStack from Java

Following this I have done following changes:

  1. Added export AWS_CBOR_DISABLE=true in .bash_profile

  2. Added following line in ~/.aws/config:

    cborEnabled = false

Even after this, I keep getting same error.

Joy
  • 4,197
  • 14
  • 61
  • 131

0 Answers0