KeyFactory.stringToKey()始终给出" IllegalArgumentException:无法解析引用"

时间:2015-10-07 15:15:37

标签: java google-app-engine

我制作了一个小型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超类。如果需要更多信息,我很乐意提供。

1 个答案:

答案 0 :(得分:0)

" randomstring"不是有效的密钥字符串。我认为应该像这样形成一个有效的密钥字符串:

Key([Key("ancestorKindName", idOrName),] "kindName", idOrName)

请注意,stringToKey方法不是为了在分配方式中创建密钥。如果您正在寻找此类功能,请在documentation中查找DatastoreService.allocateIds()