android - IllegalArgumentException: expected primitive class, but got: class UUID -


my app using gae endpoints. model has uuid. , once try send android app encounters illegalargument exception.

anyone has got recommendations how handle endpoints model uuid on android app google app engine endpoints?

 06-14 23:26:49.560  27462-27488/com.example e/androidruntime﹕ fatal exception: asynctask #1     process: com.example, pid: 27462     java.lang.runtimeexception: error occured while executing doinbackground()             @ android.os.asynctask$3.done(asynctask.java:300)             @ 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: java.lang.illegalargumentexception: key id             @ com.google.api.client.json.jsonparser.parsevalue(jsonparser.java:880)             @ com.google.api.client.json.jsonparser.parse(jsonparser.java:381)             @ com.google.api.client.json.jsonparser.parse(jsonparser.java:354)             @ com.google.api.client.json.jsonobjectparser.parseandclose(jsonobjectparser.java:87)             @ com.google.api.client.json.jsonobjectparser.parseandclose(jsonobjectparser.java:81)             @ com.google.api.client.http.httpresponse.parseas(httpresponse.java:459)             @ com.google.api.client.googleapis.services.abstractgoogleclientrequest.execute(abstractgoogleclientrequest.java:460)             @ com.example.customasynctask.doinbackground(customasynctask.java:30)             @ com.example.customasynctask.doinbackground(customasynctask.java:15)             @ android.os.asynctask$2.call(asynctask.java:288)             @ java.util.concurrent.futuretask.run(futuretask.java:237)             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: java.lang.illegalargumentexception: key id, field private com.example.customapi.model.uuid com.example.customapi.model.survey.id             @ com.google.api.client.json.jsonparser.parsevalue(jsonparser.java:880)             @ com.google.api.client.json.jsonparser.parse(jsonparser.java:471)             @ com.google.api.client.json.jsonparser.parsevalue(jsonparser.java:780)             at com.google.api.client.json.jsonparser.parse(jsonparser.java:381)             at com.google.api.client.json.jsonparser.parse(jsonparser.java:354)             at com.google.api.client.json.jsonobjectparser.parseandclose(jsonobjectparser.java:87)             at com.google.api.client.json.jsonobjectparser.parseandclose(jsonobjectparser.java:81)             at com.google.api.client.http.httpresponse.parseas(httpresponse.java:459)             at com.google.api.client.googleapis.services.abstractgoogleclientrequest.execute(abstractgoogleclientrequest.java:460)             at com.example.customasynctask.doinbackground(customasynctask.java:30)             at com.example.customasynctask.doinbackground(customasynctask.java:15)             at android.os.asynctask$2.call(asynctask.java:288)             at java.util.concurrent.futuretask.run(futuretask.java:237)             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: java.lang.illegalargumentexception: **expected primitive class, got: class com.example.customapi.model.uuid**             @ com.google.api.client.util.data.parseprimitivevalue(data.java:444)             @ com.google.api.client.json.jsonparser.parsevalue(jsonparser.java:850)             at com.google.api.client.json.jsonparser.parse(jsonparser.java:471)             at com.google.api.client.json.jsonparser.parsevalue(jsonparser.java:780)             at com.google.api.client.json.jsonparser.parse(jsonparser.java:381)             at com.google.api.client.json.jsonparser.parse(jsonparser.java:354)             at com.google.api.client.json.jsonobjectparser.parseandclose(jsonobjectparser.java:87)             at com.google.api.client.json.jsonobjectparser.parseandclose(jsonobjectparser.java:81)             at com.google.api.client.http.httpresponse.parseas(httpresponse.java:459)             at com.google.api.client.googleapis.services.abstractgoogleclientrequest.execute(abstractgoogleclientrequest.java:460)             at com.example.customasynctask.doinbackground(customasynctask.java:30)             at com.example.customasynctask.doinbackground(customasynctask.java:15)             at android.os.asynctask$2.call(asynctask.java:288)             at java.util.concurrent.futuretask.run(futuretask.java:237)             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) 

my custom class endpoint returning android:

import com.j256.ormlite.field.databasefield; import com.j256.ormlite.table.databasetable;  import java.util.uuid;  @databasetable public class customclass {      @databasefield(generatedid = true)     uuid id;      @databasefield     string title;       public customclass() {         //nothing     }      public uuid getid() {         return id;     }      public void setid(uuid id) {         this.id = id;     }      } 

my endpoint code:

import java.util.uuid;  import javax.inject.named;  /**  * endpoint class exposing  */ @api(         name = "customapi",         version = "v1",         resource = "customr",         namespace = @apinamespace(                 ownerdomain = "xyz",                 ownername = "xyz",                 packagepath = ""         ) ) public class customclassendpoint  {      @apimethod(             name = "insertcustom",             scopes = "profile",             clientids = {"xx"},             audiences = {"xx"}     )     public customclass insertcustomclass(customclass customclass, com.google.appengine.api.users.user authuser ) throws conflictexception, oauthrequestexception {         logger.info("calling insertcustomclass method");         //persisting        customclass assigns uuid         return customclass;     }  } 

i understand why google api json parser attempting parse uuid primitive, @ least found workaround issue.

in model class kept field uuid changed getter return string, looks this:

public string getid() {       return id.tostring();  } 

and has solved issue me.


Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -