【问题标题】:java.lang.IncompatibleClassChangeError: while running junit in docker composejava.lang.IncompatibleClassChangeError:在 docker compose 中运行 junit 时
【发布时间】:2017-07-03 08:29:06
【问题描述】:

我正在使用 docker-compose 测试我的应用程序,其中包含 DynamoDB 作为内部 container.docker-compose 文件,如下所示:

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"

在构建代码时出现以下错误:

java.lang.IncompatibleClassChangeError:类 com.amazonaws.http.conn.ssl.SdkTLSSocketFactory 未在 org.apache.http.impl.conn.DefaultClientConnectionOperator 实现请求的接口 org.apache.http.conn.scheme.SchemeSocketFactory .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:6 07)

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)

【问题讨论】:

    标签: amazon-web-services junit amazon-dynamodb docker-compose


    【解决方案1】:

    使其正常工作所需的修复是将 dynamodb 的主机名从 dynamodb 更改为 http://dynamodb,在 docker 文件中

    【讨论】:

      猜你喜欢
      • 2022-06-11
      • 2020-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-18
      • 2021-05-30
      • 2019-06-18
      • 1970-01-01
      相关资源
      最近更新 更多