2015-07-21 1 views
9

Ich versuche, meine App mit DynamoDB zu verbinden. Ich habe alles so eingerichtet, wie es Amazon empfiehlt. Aber ich halte immer noch den gleichen Fehler über immer und immer wieder:AWS DynamoDB Angeforderte Ressource nicht gefunden

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) 

Was die Lösung sein könnte?

+1

Existiert Ihre Tabelle? Wie war der Status ('CREATING' oder ein anderer Staat)? – mkobit

Antwort

26

Okey es scheint, dass Sie hinzufügen müssen:

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

nach der folgenden Zeile:

AmazonDynamoDBClient ddbClient = new AmazonDynamoDBClient(credentialsProvider); 

Jetzt funktioniert es. Die Tabelle wurde erfolgreich erstellt. Einen schönen Tag und danke!

+0

Hinweis für andere, die dies sehen. Sie müssen die Region auf Ihren Dynamo-Clients auf die Region der Tabelle setzen (im Allgemeinen gilt dies für alle Clients und ihre jeweiligen Ressourcen. Bei den meisten Clients wird standardmäßig US-EAST-1 verwendet. Wir empfehlen daher immer, eine Region sorgfältig auszuwählen Ihre Ressourcen und für die Clients verwendet, um auf sie zuzugreifen). – WestonE

+0

Danke! hielt mich davon ab, verrückt zu werden, als ich die Dokumentation befolgte und keine Erwähnung über die Einstellung der Region für den Kunden gemacht wurde. Da die Region in den Anmeldeinformationen festgelegt wurde, ging ich davon aus, dass das erledigt wurde. Sehen Sie die Dokumentation hier http://docs.aws.amazon.com/mobile/sdkforandroid/developerguide/dynamodb_om.html –

+0

Ihre Bitcoin Wallet ist willkommen. Dies ist der einzige Hinweis, den wir für das Problem gefunden haben! Vielen Dank – sigi

5

Es scheint, dass die Tabelle, mit der Sie eine Verbindung herstellen möchten, nicht existiert. Überprüfen Sie den Tabellenname in Ihrem Code auf den Namen der Tabelle, die Sie erstellten.