com.amazonaws の dynamodblocal (maven の v 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 操作をプログラムで実行できます。
私は何を間違っていますか?