java - DynamoDB AmazonServiceException: The provided key element does not match the schema -


so can guide me why i'm getting exception. here list of exceptions bcz of app has stopped:- 11-11 17:54:22.724 5048-5171/com.creation.ceaggregation1 e/androidruntime: fatal exception: asynctask #3 process: com.creation.ceaggregation1, pid: 5048 java.lang.runtimeexception: error occured while executing doinbackground() @ android.os.asynctask$3.done(asynctask.java:304) @ java.util.concurrent.futuretask.finishcompletion(futuretask.java:355) @ java.util.concurrent.futuretask.setexception(futuretask.java:222) @ java.util.concurrent.futuretask.run(futuretask.java:242) @ android.os.asynctask$serialexecutor$1.run(asynctask.java:231) @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1112) @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:587) @ java.lang.thread.run(thread.java:818) caused by: com.amazonaws.amazonserviceexception: provided key element not match schema (service: amazondynamodb; status code: 400; error code: validationexception; request id: c8btd5j7q2477psok1f9g3futfvv4kqnso5aemvjf66q9asuaajg) @ com.amazonaws.http.amazonhttpclient.handleerrorresponse(amazonhttpclient.java:712) @ com.amazonaws.http.amazonhttpclient.executehelper(amazonhttpclient.java:388) @ com.amazonaws.http.amazonhttpclient.execute(amazonhttpclient.java:199) @ com.amazonaws.services.dynamodbv2.amazondynamodbclient.invoke(amazondynamodbclient.java:4181) @ com.amazonaws.services.dynamodbv2.amazondynamodbclient.updateitem(amazondynamodbclient.java:1582) @ com.amazonaws.mobileconnectors.dynamodbv2.dynamodbmapper.dynamodbmapper$saveobjecthandler.doupdateitem(dynamodbmapper.java:1173) @ com.amazonaws.mobileconnectors.dynamodbv2.dynamodbmapper.dynamodbmapper$2.executelowlevelrequest(dynamodbmapper.java:873) @ com.amazonaws.mobileconnectors.dynamodbv2.dynamodbmapper.dynamodbmapper$saveobjecthandler.execute(dynamodbmapper.java:1056) @ com.amazonaws.mobileconnectors.dynamodbv2.dynamodbmapper.dynamodbmapper.save(dynamodbmapper.java:904) @ com.amazonaws.mobileconnectors.dynamodbv2.dynamodbmapper.dynamodbmapper.save(dynamodbmapper.java:688) @ com.creation.ceaggregation1.enteruser$updatetable.doinbackground(enteruser.java:64) @ com.creation.ceaggregation1.enteruser$updatetable.doinbackground(enteruser.java:40) @ android.os.asynctask$2.call(asynctask.java:292) @ java.util.concurrent.futuretask.run(futuretask.java:237) @ android.os.asynctask$serialexecutor$1.run(asynctask.java:231)  @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1112)  @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:587)  @ java.lang.thread.run(thread.java:818)  11-11 17:54:24.769 5048-5171/com.creation.ceaggregation1 i/process: sending signal. pid: 5048 sig: 9

heres mapper class:-

@dynamodbtable(tablename = "agation1") public class awsdynamdbmapperclass { string username; string password;  @dynamodbhashkey(attributename="username")//username public string getusername() {     return username; }  public void setusername(string username) {     this.username = username; }  @dynamodbattribute(attributename = "password")//password public string getpassword() {     return password; }  public void setpassword(string password) {     this.password = password; } } 

here mainactivity code:- private class updatetable extends asynctask {

    @override     protected string doinbackground(string... params) {         string name = params[0];         string password = params[1];          try {             awsdynamodbmanagerclass manager = new     awsdynamodbmanagerclass();             cognitocredentialsprovider credentialsprovider = manager.getcredentials(enteruser.this);             awsdynamdbmapperclass mapperclass = new awsdynamdbmapperclass();             mapperclass.setusername(name);             mapperclass.setpassword(password);             if (credentialsprovider != null && mapperclass != null) {                 dynamodbmapper dynamodbmapper = manager.initdynamoclient((cognitocachingcredentialsprovider) credentialsprovider);                 dynamodbmapper.save(mapperclass);//gives error on here              } else {                 return "ss";             }             return "rr";          } catch (dynamodbmappingexception ex) {             ex.printstacktrace();             return "exception";         }     }      @override     protected void onpostexecute(string result) {         super.onpostexecute(result);         if(result.equals("ss")){             toast.maketext(enteruser.this, "entered :) ", toast.length_long).show();         }else if(result.equals("rr")){             toast.maketext(enteruser.this, "already existing", toast.length_short).show();         }else{             toast.maketext(enteruser.this, "**exception caught**", toast.length_short).show();         }     } } 

2 difference between partition key, primary key hash key , sort key??

3 please suggest if asynctask required here or not. please suggest benefits , disadvantages (through example,if possible better)

thank helping.

1) because table "agation1" not have partition key set "username" or not string

2) partition key combination of primary key hash + sort key. 2 uniquely identify row. table not have have sort key. if has no sort key, partition key same hash key.

3) must make save calls on different thread, asynctask 1 way that.


Comments

Post a Comment

Popular posts from this blog

php - How to add and update images or image url in Volusion using Volusion API -

javascript - jQuery UI Splitter/Resizable for unlimited amount of columns -

javascript - IE9 error '$'is not defined -