2015-07-21 132 views
9

我試圖將我的應用程序連接到DynamoDB。我已經按照亞馬遜的建議設置了一切。但我仍然保持一遍又一遍的得到同樣的錯誤:AWS DynamoDB請求的資源未找到

7-21 11:02:29.856 10027-10081/com.amazonaws.cognito.sync.demo E/AndroidRuntime﹕ FATAL EXCEPTION: AsyncTask #1 
    Process: com.amazonaws.cognito.sync.demo, PID: 10027 
    java.lang.RuntimeException: An error occured while executing doInBackground() 
      at android.os.AsyncTask$3.done(AsyncTask.java:304) 
      at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355) 
      at java.util.concurrent.FutureTask.setException(FutureTask.java:222) 
      at java.util.concurrent.FutureTask.run(FutureTask.java:242) 
      at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
      at java.lang.Thread.run(Thread.java:818) 
    Caused by: com.amazonaws.services.dynamodbv2.model.ResourceNotFoundException: Requested resource not found (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: ResourceNotFoundException; Request ID: GIONOKT7E3AMTC4PO19CPLON93VV4KQNSO5AEMVJF66Q9ASUAAJG) 
      at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:710) 
      at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:385) 
      at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:196) 
      at com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.invoke(AmazonDynamoDBClient.java:2930) 
      at com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.updateItem(AmazonDynamoDBClient.java:930) 
      at com.amazonaws.mobileconnectors.dynamodbv2.dynamodbmapper.DynamoDBMapper$SaveObjectHandler.doUpdateItem(DynamoDBMapper.java:1173) 
      at com.amazonaws.mobileconnectors.dynamodbv2.dynamodbmapper.DynamoDBMapper$2.executeLowLevelRequest(DynamoDBMapper.java:873) 
      at com.amazonaws.mobileconnectors.dynamodbv2.dynamodbmapper.DynamoDBMapper$SaveObjectHandler.execute(DynamoDBMapper.java:1056) 
      at com.amazonaws.mobileconnectors.dynamodbv2.dynamodbmapper.DynamoDBMapper.save(DynamoDBMapper.java:904) 
      at com.amazonaws.mobileconnectors.dynamodbv2.dynamodbmapper.DynamoDBMapper.save(DynamoDBMapper.java:688) 
      at com.amazonaws.cognito.sync.Utils.FriendsSyncManager.initalize_credentialprovider(FriendsSyncManager.java:43) 
      at com.amazonaws.cognito.sync.ValU.FriendListActivity$SyncFriends.doInBackground(FriendListActivity.java:168) 
      at com.amazonaws.cognito.sync.ValU.FriendListActivity$SyncFriends.doInBackground(FriendListActivity.java:160) 
      at android.os.AsyncTask$2.call(AsyncTask.java:292) 

可能是什麼解決辦法嗎?

+1

您的表是否存在?它的地位如何(「創造」或其他一些州)? – mkobit

回答

26

歐凱看來你需要添加:

ddbClient.setRegion(Region.getRegion(Regions.EU_WEST_1)); 
// Add correct Region. In my case its EU_WEST_1 

以下行後:

AmazonDynamoDBClient ddbClient = new AmazonDynamoDBClient(credentialsProvider); 

現在,它的工作原理。該表已成功創建。 祝您有愉快的一天,謝謝!

+0

注意其他誰看到這一點。您必須將您的Dynamo客戶端上的區域設置爲表格區域(通常情況下,所有客戶端及其各自的資源都是如此,認爲大多數客戶端將默認爲US-EAST-1,我們始終建議謹慎選擇一個區域用於您的資源以及用於訪問它們的客戶)。 – WestonE

+0

謝謝!因爲我正在跟蹤文檔,並且沒有提到爲客戶設置區域,所以阻止了我瘋狂。由於該地區是在全權證書中設定的,我假定照顧它。看到這裏的文檔http://docs.aws.amazon.com/mobile/sdkforandroid/developerguide/dynamodb_om.html –

+0

你的比特幣錢包是值得歡迎的。這是我們發現問題的唯一線索!謝謝 – sigi

5

看起來你試圖連接的表不存在。驗證代碼中的表名稱是您創建的表的名稱。