Google app engine 尝试使用GAE数据存储中的密钥访问实体时出现异常
实际上,我正在使用GAE构建聊天室。问题是,我正在使用数据存储密钥将clientid和令牌存储在ChatErrorServlet中,并在sayservlet中访问它们,但当我尝试使用密钥从sayservlet访问数据存储时,我得到一个异常,即未找到具有密钥的实体 我的聊天室servletGoogle app engine 尝试使用GAE数据存储中的密钥访问实体时出现异常,google-app-engine,google-cloud-datastore,channel-api,Google App Engine,Google Cloud Datastore,Channel Api,实际上,我正在使用GAE构建聊天室。问题是,我正在使用数据存储密钥将clientid和令牌存储在ChatErrorServlet中,并在sayservlet中访问它们,但当我尝试使用密钥从sayservlet访问数据存储时,我得到一个异常,即未找到具有密钥的实体 我的聊天室servlet String clientid = request.getParameter("clientid"); ChannelService channelService = ChannelServic
String clientid = request.getParameter("clientid");
ChannelService channelService = ChannelServiceFactory.getChannelService();
String token = channelService.createChannel(clientid);
channelService.sendMessage(new ChannelMessage(token, "Hello World"));
System.out.println("token is ="+token);
JSONObject job=new JSONObject();
job.put("token",token);
Key userkey=KeyFactory.createKey("users", "user1");
System.out.println("user key in chatroom "+ userkey);
Entity ent=new Entity("user");
ent.setProperty("clientid", clientid);
ent.setProperty("token", token);
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
datastore.put(ent);
System.out.println(ent);
假设servlet是
String message = request.getParameter("message");
String clientid = request.getParameter("clientid");
System.out.println(message);
Key userkey=KeyFactory.createKey("users", "user1");
Entity entity;
DatastoreService datastore = DatastoreServiceFactory
.getDatastoreService();
entity = datastore.get(userkey);
String token = (String) entity.getProperty("token");
System.out.println("token frm db ="+token);
ChannelService channelService = ChannelServiceFactory.getChannelService();
channelService.sendMessage(new ChannelMessage(token, "Hello World"));
System.out.println("message is ="+message);
System.out.println("cid is ="+clientid);
如果访问时出现任何错误,请帮助我。在聊天室servlet中,您似乎创建了一个实体,但未使用生成的密钥。因此,当您在say servlet中按该键进行查找时,数据存储将无法找到实体 您的聊天室servlet应该使用
userkey
创建实体:
Key userkey=KeyFactory.createKey("users", "user1");
System.out.println("user key in chatroom "+ userkey);
Entity ent=new Entity(userkey);
Key userkey=KeyFactory.createKey(“用户”、“用户1”);
System.out.println(“聊天室中的用户密钥”+用户密钥);
实体ent=新实体(用户密钥);