2015-07-21 14 views
9

मैं अपने ऐप को डायनेमोडीबी से कनेक्ट करने का प्रयास कर रहा हूं। मैंने अमेज़ॅन की सिफारिश की तरह सब कुछ तय कर दिया है। लेकिन मैं अभी भी बार बार एक ही त्रुटि मिलती रहती है: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

शाबाशी यह आप जोड़ने की जरूरत है लगता है

AmazonDynamoDBClient ddbClient = new AmazonDynamoDBClient(credentialsProvider); 

अब यह काम करता है। तालिका सफलतापूर्वक बनाई गई थी। एक अच्छा दिन और धन्यवाद है!

+0

दूसरों को यह देखने के लिए नोट करें। आपको क्षेत्र को अपने डायनेमो क्लाइंट पर तालिका के क्षेत्र में सेट करना होगा (सामान्यतः यह सभी ग्राहकों और उनके संबंधित संसाधनों के बारे में सच है, सोचा कि अधिकतर ग्राहक यूएस-ईएएसटी -1 के लिए डिफ़ॉल्ट होंगे, हम हमेशा दोनों को एक क्षेत्र का चयन करने की सलाह देते हैं आपके संसाधन और उन ग्राहकों के लिए उपयोग किए जाने वाले ग्राहकों के लिए)। – WestonE

+0

धन्यवाद! मुझे पागल होने से रोक दिया क्योंकि मैं प्रलेखन का पालन कर रहा था और क्लाइंट के लिए क्षेत्र को स्थापित करने के बारे में कोई उल्लेख नहीं किया गया था। क्योंकि इस क्षेत्र को प्रमाण-पत्रों में स्थापित किया गया था, मैंने माना कि इसकी देखभाल की गई। यहां दस्तावेज़ों को देखें http://docs.aws.amazon.com/mobile/sdkforandroid/developerguide/dynamodb_om.html –

+0

आपका बिटकॉइन वॉलेट स्वागत है। समस्या के लिए हमें यह एकमात्र सुराग मिला है! धन्यवाद – sigi

5

ऐसा लगता है कि जिस तालिका से आप कनेक्ट करने का प्रयास कर रहे हैं वह मौजूद नहीं है। अपने कोड में तालिका का नाम सत्यापित करें आपके द्वारा बनाई गई तालिका का नाम दोबारा।

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

निम्न पंक्ति के बाद:

संबंधित मुद्दे