【问题标题】:Unable to connect to local dynamo-db instance in java无法连接到 java 中的本地 dynamo-db 实例
【发布时间】:2021-12-11 14:20:30
【问题描述】:

我正在测试使用 dynamoDB 的应用程序。我已经使用 docker 在本地启动了一个实例,并且能够在实例中创建/添加项目。

现在,在我的 Java 应用程序中,我正在尝试连接到本地,当我发送与本地 Dynamo 交互的 API 调用时,它会引发错误 -

无法执行 HTTP 请求:不支持或无法识别 SSL 留言

我已经使用命令验证了端点和区域。 用于连接发电机的 Java 代码 sn-p -

AmazonDynamoDBClientBuilder builder = AmazonDynamoDBClientBuilder.standard().withCredentials(amazonAWSCredentialsProvider());
    if (StringUtils.isEmpty(endpoint))
        builder.withRegion(Regions.fromName(awsRegion));
    else
        builder.withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(endpoint, awsRegion));
    return builder.build();

我不确定这在哪里失败。我为访问和密钥传递空白,区域是aws configure get region 的输出。端点配置为localhost:8000

堆栈跟踪 -

2021-10-26 17:44:35 [991c4652-5f7f-42ca-8aeb-447b385c535f] 错误 [http-nio-8085-exec-3] o.a.c.c.C.[.[.[.[dispatcherServlet] [DirectJDKLog.java:175] Servlet.service() 用于 servlet [dispatcherServlet] 在带有路径 [] 的上下文中抛出异常 [Request 处理失败;嵌套异常是 com.amazonaws.SdkClientException:无法执行 HTTP 请求: 根本原因不受支持或无法识别的 SSL 消息] javax.net.ssl.SSLException:不支持或无法识别的 SSL 消息 在 sun.security.ssl.SSLSocketInputRecord.handleUnknownRecord(SSLSocketInputRecord.java:448) 在 sun.security.ssl.SSLSocketInputRecord.decode(SSLSocketInputRecord.java:184) 在 sun.security.ssl.SSLTransport.decode(SSLTransport.java:109) 在 sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1383) 在 sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1291) 在 sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:435) 在 org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:436) 在 org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:384) 在 com.amazonaws.http.conn.ssl.SdkTLSSocketFactory.connectSocket(SdkTLSSocketFactory.java:142) 在 org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142) 在 org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:374) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 com.amazonaws.http.conn.ClientConnectionManagerFactory$Handler.invoke(ClientConnectionManagerFactory.java:76)

虽然我的实例正在运行,但我也无法连接到 http://localhost:8000/shell

【问题讨论】:

  • Java应用是在Docker里面还是数据库在Docker里面?
  • Java 应用程序在外部,在不同的端口上运行。数据库在 docker 里面。

标签: java docker amazon-dynamodb database-connection dynamo-local


【解决方案1】:

我让它工作了。我没有注意我使用的 url,我应该使用http://localhost:8000(和http://)而不是纯localhost:8000。 愚蠢的错误会占用你很多时间!!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-05
    • 1970-01-01
    • 2017-10-14
    • 1970-01-01
    • 2015-04-30
    相关资源
    最近更新 更多