【发布时间】: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