0

I am testing my app with docker-compose which consist of DynamoDB as an inner container.docker-compose file as below:

version: '2'
services:
  appName:
    mem_limit: 1024m
    build:
      dockerfile: dockerfile.test
      context: .
    ports:
        - "8090:8090"
    env_file:
        - env/test.env
    depends_on:
      - redis
      - postgres
      - dynamodb
      - memcached
    entrypoint: "./bin/entrypoint.sh"

  redis:
    image: "redis:alpine"

  postgres:
    image: "postgres:9.6-alpine"

  dynamodb:
    image: "tutum/dynamodb:latest"
    ports:
      - "8000:8000"
    hostname: dynamodb

  memcached:
   image: "memcached:alpine"

On building up the code i am getting following error:

java.lang.IncompatibleClassChangeError: Class com.amazonaws.http.conn.ssl.SdkTLSSocketFactory does not implement the requested interface org.apache.http.conn.scheme.SchemeSocketFactory at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:165) org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:304) org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:611) org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:446) org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:863) org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82) org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:57) com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:837) com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:607)

com.amazonaws.http.AmazonHttpClient.doExecute(AmazonHttpClient.java:376) com.amazonaws.http.AmazonHttpClient.executeWithTimer(AmazonHttpClient.java:338) com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:287) com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.doInvoke(AmazonDynamoDBClient.java:2000) com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.invoke(AmazonDynamoDBClient.java:1970) com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.getItem(AmazonDynamoDBClient.java:1329) com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.load(DynamoDBMapper.java:433) com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.load(DynamoDBMapper.java:496) com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.load(DynamoDBMapper.java:400)

1 Answer 1

0

The fix required to get it working is changing the hostname of dynamodb from dynamodb to http://dynamodb, In docker file

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.