2016-10-21 7 views
0

私は、com.amazonawsのdynamodblocal(v 1.10.5.1 from maven)でinMemory dynamoDBをローカルに作成しています。ローカルサーバーを起動するプログラムでdynamodblocalを使用してhttp:// localhost:{port}にアクセスできない

Javaコードは次のとおりです。ポート60677

Initializing DynamoDB Local with the following configuration: 
Port: 60677 
InMemory: true 
DbPath: null 
SharedDb: true 
shouldDelayTransientStatuses: false 
CorsParams: * 

ここで使用されていると私は手動で開くことができます:ここで

server = ServerRunner.createServerFromCommandLineArgs({ "port", getAvailablePort(), "-inMemory", "-sharedDb" }); 
server.start(); 
AmazonDynamoDBClient amazonDynamoDBClient = new AmazonDynamoDBClient(basicAWSCredentials); 

は私が成功した地元DynamoDBのを開始した確認ログがありますhttp://localhost:60677/shellウェブブラウザから。しかし、私がプログラム的にそれに到達しようとするとうまくいかない。私はHTTP/1.1 500 Server Errorを得続けます。私は、コマンドラインから1を起動したときにも

amazonDynamoDBClient.setEndpoint("http://localhost:" + port); 
amazonDynamoDBClient.listTables(); 

java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -port 9999 -inMemory -sharedDb 

とに接続しよう

これは(ポートはgetAvailablePort()の出力になります)私に500エラーを与えるだろうそれはプログラム的に、それはうまく動作します。これにより、すべてのCRUD操作をプログラムで行うことができます。

私は間違っていますか?

+0

以下の回答に従います。 http://stackoverflow.com/a/37780083/2067143 – dinky

答えて

1

ローカルのDynamoDBサーバーが起動して稼働しているときは、次のコードを使用してテーブルのリストを取得できます。

以下のコードでポート番号を変更してください。 basicAWSCredentialsは必須ではありません。

DynamoDB dynamoDB = new DynamoDB(new AmazonDynamoDBClient().withEndpoint("http://localhost:8000")); 

TableCollection<ListTablesResult> tables = dynamoDB.listTables(); 
Iterator<Table> iterator = tables.iterator(); 

while (iterator.hasNext()) { 
    Table table = iterator.next(); 
    System.out.println(table.getTableName()); 
} 
関連する問題