我制作了一个小型Google App Engine程序,它突然提供了我不理解的例外情况。我在本地运行此程序,我试图在许多字符串上使用 KeyFactory 类的Google App Engine SDK stringToKey()的方法,但是一直给我一个错误。
示例:
KeyFactory.stringToKey("randomstring");
这两行代码都给出了以下IllegalArgumentException:
java.lang.IllegalArgumentException: Could not parse Reference
at com.google.appengine.api.datastore.KeyFactory.stringToKey(KeyFactory.java:203)
at com.businessLayer.DDOSLogAnalyser.handleUsersSet(DDOSLogAnalyser.java:81)
at com.businessLayer.DDOSLogAnalyser.doPost(DDOSLogAnalyser.java:50)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
[...]
使用DDOSLogAnalyser我自己编写的唯一课程。该类扩展了HttpServlet超类。如果需要更多信息,我很乐意提供。
答案 0 :(得分:0)
" randomstring"不是有效的密钥字符串。我认为应该像这样形成一个有效的密钥字符串:
Key([Key("ancestorKindName", idOrName),] "kindName", idOrName)
请注意,stringToKey
方法不是为了在分配方式中创建密钥。如果您正在寻找此类功能,请在documentation中查找DatastoreService.allocateIds()
。