我使用这些代码连接SimpleDB和查询数据。 我可以在SQL Scrap Book中运行查询,结果没问题。 但是当我在Eclipse中运行它时,我收到了错误消息:
"12-18 22:01:57.401: I/com.amazonaws.request(402): Received error response: Status Code: 400, AWS Request ID: d68b7fcc-cd4a-7def-602c-96ad189d8fcf, AWS Error Code: NoSuchDomain, AWS Error Message: The specified domain does not exist."
你对此有什么想法吗?
//1. Creating a SimpleDB Client
AWSCredentials credentials = new BasicAWSCredentials( ACCESS_KEY_ID, SECRET_KEY );
AmazonSimpleDBClient sdbClient = new AmazonSimpleDBClient( credentials);
//2. Select
String nextToken = null;
SelectRequest selectRequest = new SelectRequest( "select * from mydomain" ).withConsistentRead( true );
selectRequest.setNextToken( nextToken );
SelectResult response = sdbClient.select( selectRequest );
nextToken = response.getNextToken();
答案 0 :(得分:2)
您需要在请求域数据之前指定服务器区域端点。 Amazon Simple DB支持7个区域端点。
地区,终点
"US-East(Northern Virginia)", "sdb.amazonaws.com"
"EU(Ireland)", "sdb.eu-west-1.amazonaws.com"
"US-West(Northern California)", "sdb.us-west-1.amazonaws.com"
"Asia Pacific(Singapore)", "sdb.ap-southeast-1.amazonaws.com"
"Asia Pacific(Tokyo)", "sdb.ap-northeast-1.amazonaws.com"
"US West(Oregon)", "sdb.us-west-2.amazonaws.com"
"South America(Sao Paulo)", "sdb.sa-east-1.amazonaws.com"
如何设置区域终点
BasicAWSCredentials basicAWSCredentials = new BasicAWSCredentials(sAccessKey, sSecretKey);
AmazonSimpleDBClient amazonSimpleDBClient = new AmazonSimpleDBClient(basicAWSCredentials);
amazonSimpleDBClient.setEndpoint(Endpoint);
答案 1 :(得分:0)
谢谢你!我自己想通了。 以下是整个代码:
//1. Creating a SimpleDB Client
AWSCredentials credentials = new BasicAWSCredentials( ACCESS_KEY, SECRET_KEY );
AmazonSimpleDBClient sdbClient = new AmazonSimpleDBClient( credentials);
sdbClient.setEndpoint("sdb.us-west-1.amazonaws.com"); // to define Data Center Region
//2. Select
String nextToken = null;
SelectRequest selectRequest = new SelectRequest( "select * from myDomain" ).withConsistentRead( true );
selectRequest.setNextToken( nextToken );
SelectResult response = sdbClient.select( selectRequest );
nextToken = response.getNextToken();