我正在使用 com.amazonaws 的 dynamodblocal(来自 maven 的 1.10.5.1)在本地创建一个 inMemory dynamoDB。
启动本地服务器的 Java 代码是:
server = ServerRunner.createServerFromCommandLineArgs({ "port", getAvailablePort(), "-inMemory", "-sharedDb" });
server.start();
AmazonDynamoDBClient amazonDynamoDBClient = new AmazonDynamoDBClient(basicAWSCredentials);
这是确认我已成功启动本地 dynamodb 的日志:
Initializing DynamoDB Local with the following configuration:
Port: 60677
InMemory: true
DbPath: null
SharedDb: true
shouldDelayTransientStatuses: false
CorsParams: *
http://localhost:60677/shell
此处使用端口 60677,我可以从 Web 浏览器手动打开。但是当我尝试以编程方式访问它时它不起作用。我不断得到HTTP/1.1 500 Server Error
。
这会给我 500 错误(端口将是 的输出getAvailablePort()
):
amazonDynamoDBClient.setEndpoint("http://localhost:" + port);
amazonDynamoDBClient.listTables();
另外,当我从命令行启动一个时:
java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -port 9999 -inMemory -sharedDb
并尝试以编程方式连接到它,它工作正常。它允许我以编程方式执行所有 CRUD 操作。
我究竟做错了什么?