java-为什么在使用Google App Engile的端点插入数据时在Android中出现错误?

java-为什么在使用Google App Engile的端点插入数据时在Android中出现错误?,第1张

概述我正在从android项目访问终结点.AppEngine项目已成功部署.这是我的Android代码:Usermasterendpoint.BuilderendpointBuilder=newUsermasterendpoint.Builder(AndroidHttp.newCompatibleTransport(),newJacksonFactory(),newHttpRequestIniti

我正在从android项目访问终结点. App Engine项目已成功部署.

这是我的Android代码:

Usermasterendpoint.Builder endpointBuilder = new Usermasterendpoint.Builder(AndroIDhttp.newCompatibleTransport(),           new JacksonFactory(),           new httpRequestinitializer() {           public voID initialize(httpRequest httpRequest) { }           });            Usermasterendpoint endpoint = CloudEndpointUtils.updateBuilder(        endpointBuilder).build();            System.out.println("End of Asynk Task is...................///////////");        try {           UserMaster userManager = new UserMaster();//.setDescription("Note Description");           String userID = new Date().toString();           userManager.setUserID(userID);           userManager.setEmail(Email);           userManager.setUsername(username);           userManager.setPassword(password);           UserMaster UsermanagerResult = endpoint.insertUserMaster(userManager).execute();

这是我的UserMaster实体类.我正在尝试从上面的androID代码中使用.

package com.jay.myapp.dao;//********************************************************************************************************* //Author - Jay//Description - This class is Data Access Object (DAO) for UserMasterDao entity//        - Class is basically business class and mostly related to GAE/web application//*********************************************************************************************************import java.text.SimpleDateFormat;import java.util.Date;import java.util.List;import javax.persistence.EntityManager;import javax.persistence.query;import java.util.logging.Logger;import com.Google.appengine.API.users.User;import com.jagdish.mydprapp.model.UserMaster;import com.jagdish.mydprapp.model.emf;public enum UserMasterDao {    INSTANCE;    private static final Logger log = Logger.getLogger(UserMasterDao.class.getname());//*****************************************************************************************************//getUserByUsermasterID - This method will return List of users or user by getUserByUsermasterID//*****************************************************************************************************@SuppressWarnings("unchecked") //Suppress warning for getResultList()public List<UserMaster> getUserByUsermasterID(Long usermasterID) {log.info("InsIDe getUserByUsermasterID");  EntityManager em = EMF.get().createEntityManager();// Read the existing entrIEsquery q = em.createquery("select t from UserMaster t where t.usermasterID = :usermasterID");q.setParameter("usermasterID", usermasterID);List<UserMaster> userList = q.getResultList();log.info("returning userList");return userList;}//*****************************************************************************************************//addUser - This method will add User to //*****************************************************************************************************public voID addUser(String userID, String employeeID, String mediamasterID, User user,          String username, String password, String passwordhintquestion, String passwordhintanswer,          String firstname, String lastname, String email, Long primaryphone, Long secondaryphone,          Long primarymobile, Long secondarymobile, String gender, Long birthdate,          String registrationID, String paypalID, String creditcardname, String creditcardnumber,          String creditcardexpiration, String creditcardcvccode, String creditcardtype,          boolean activeflag, String updatedby, String dateadded, String dateupdated, String comments) {      synchronized (this) {          log.info("InsIDe addUser");          EntityManager em = EMF.get().createEntityManager();          //get current date time          Date date = new Date();          SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy h:mm:ss a");          String formattedDate = sdf.format(date);          //using user1 object variable instead of user - conflict issue with constructor           UserMaster user1 = new UserMaster(userID,  employeeID,  mediamasterID, user,                  username,  password,  passwordhintquestion,  passwordhintanswer,                  firstname,  lastname,  email,  primaryphone,  secondaryphone,                  primarymobile,  secondarymobile,  gender,  birthdate,                  registrationID,  paypalID,  creditcardname,  creditcardnumber,                  creditcardexpiration,  creditcardcvccode,  creditcardtype,                  activeflag,  updatedby,  formattedDate,  formattedDate,  comments);          em.persist(user1);          em.close();          log.info("User added to UserMaster" + user1);      }}//*****************************************************************************************************// createDefaultUser//*****************************************************************************************************public voID createDefaultUser(User user, UserMaster appUser, Genericdao<UserMaster> userDao) {    //get current date time    Date date = new Date();    SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy h:mm:ss a");    String formattedDate = sdf.format(date);    log.info("current date time " + formattedDate);    appUser = new UserMaster(user.getUserID(),"na","na",user, "na","na",            "na", "na", user.getNickname(), "na", user.getEmail(), 0L, 0L,          0L, 0L, "na", 0L, "na", user.getEmail(), "na", "na",          "na", "na", "na", true, user.getUserID(), formattedDate, formattedDate, "na");    userDao.put(appUser);}//*****************************************************************************************************//removeUser - This method will remove User from table//*****************************************************************************************************public voID removeUser(Long usermasterID) {EntityManager em = EMF.get().createEntityManager();try {    log.info("InsIDe removeUser");    UserMaster user = em.find(UserMaster.class, usermasterID);    em.remove(user);    log.info("User entry deleted");} finally { em.close();}}} //end of class

检查我得到的错误:

09-04 14:42:55.946: W/System.err(1603): com.Google.API.clIEnt.GoogleAPIs.Json.GoogleJsonResponseException: 503 Service Unavailable09-04 14:42:55.946: W/System.err(1603): {09-04 14:42:55.946: W/System.err(1603):   "code" : 503,09-04 14:42:55.946: W/System.err(1603):   "errors" : [ {09-04 14:42:55.946: W/System.err(1603):     "domain" : "global",09-04 14:42:55.956: W/System.err(1603):     "message" : "java.lang.NullPointerException",09-04 14:42:55.956: W/System.err(1603):     "reason" : "backendError"09-04 14:42:55.956: W/System.err(1603):   } ],09-04 14:42:55.956: W/System.err(1603):   "message" : "java.lang.NullPointerException"09-04 14:42:55.956: W/System.err(1603): }09-04 14:42:55.956: W/System.err(1603):     at com.Google.API.clIEnt.GoogleAPIs.services.Json.AbstractGoogleJsonClIEntRequest.newExceptionOnError(AbstractGoogleJsonClIEntRequest.java:111)09-04 14:42:55.956: W/System.err(1603):     at com.Google.API.clIEnt.GoogleAPIs.services.Json.AbstractGoogleJsonClIEntRequest.newExceptionOnError(AbstractGoogleJsonClIEntRequest.java:38)09-04 14:42:55.986: W/System.err(1603):     at com.Google.API.clIEnt.GoogleAPIs.services.AbstractGoogleClIEntRequest.interceptResponse(AbstractGoogleClIEntRequest.java:312)09-04 14:42:55.986: W/System.err(1603):     at com.Google.API.clIEnt.http.httpRequest.execute(httpRequest.java:1042)09-04 14:42:55.986: W/System.err(1603):     at com.Google.API.clIEnt.GoogleAPIs.services.AbstractGoogleClIEntRequest.executeUnparsed(AbstractGoogleClIEntRequest.java:410)09-04 14:42:55.986: W/System.err(1603):     at com.Google.API.clIEnt.GoogleAPIs.services.AbstractGoogleClIEntRequest.executeUnparsed(AbstractGoogleClIEntRequest.java:343)09-04 14:42:55.986: W/System.err(1603):     at com.Google.API.clIEnt.GoogleAPIs.services.AbstractGoogleClIEntRequest.execute(AbstractGoogleClIEntRequest.java:460)09-04 14:42:55.996: W/System.err(1603):     at com.jagdish.mydprapp.model.UserManagerAccessorClass.doInBackground(UserManagerAccessorClass.java:57)09-04 14:42:55.996: W/System.err(1603):     at com.jagdish.mydprapp.model.UserManagerAccessorClass.doInBackground(UserManagerAccessorClass.java:1)09-04 14:42:56.007: W/System.err(1603):     at androID.os.AsyncTask.call(AsyncTask.java:287)09-04 14:42:56.026: W/System.err(1603):     at java.util.concurrent.FutureTask.run(FutureTask.java:234)09-04 14:42:56.026: W/System.err(1603):     at androID.os.AsyncTask$SerialExecutor.run(AsyncTask.java:230)09-04 14:42:56.037: W/System.err(1603):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)09-04 14:42:56.037: W/System.err(1603):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)09-04 14:42:56.046: W/System.err(1603):     at java.lang.Thread.run(Thread.java:856)

请帮助我解决此问题.
提前致谢!!!

解决方法:

我得到的答案是您必须检查天气自动生成的ID是否为null.第一次给了我空.只是我必须在App Engine项目的端点类中添加一个if语句.在端点类中,您将获得

containsYourEntityClass(YourEntityClass xyz) .

您必须添加

if(YourEntityClass.getxxxID() == null)                return false;

整个代码是

private boolean containsYourEntityClass(YourEntityClass xyz) {        EntityManager mgr = getEntityManager();        boolean contains = true;        try {            if(xyz.getxxxID() == null)                return false;            YourEntityClass item = mgr.find(YourEntityClass.class,                    xyz.getxxxID());            if (item == null) {                contains = false;            }        } finally {            mgr.close();        }        return contains;    }
总结

以上是内存溢出为你收集整理的java-为什么在使用Google App Engile的端点插入数据时在Android中出现错误?全部内容,希望文章能够帮你解决java-为什么在使用Google App Engile的端点插入数据时在Android中出现错误?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1076147.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存