2015-10-07 2 views
0

Я сделал небольшую программу Google App Engine, которая внезапно дает исключения, которые я не понимаю. Выполняя эту программу локально, я пытаюсь использовать метод для Google App Engine SDK stringToKey() класса KeyFactory для ряда строк, который, однако, дает мне ошибку.KeyFactory.stringToKey() последовательно дает «IllegalArgumentException: не удалось разобрать ссылку»

Примеры:

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

Посетите ниже, что может оказаться полезным https://cloud.google.com/appengine/docs/java/datastore/jdo/creatinggettinganddeletingdata –

ответ

0

«randomstring» не является допустимой строкой ключа. Я считаю правильным строчным ключ должен быть отформатирован следующим образом:

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

Обратите внимание, что метод stringToKey не предназначен для создания ключей в способе распределения. Если вы ищете такую ​​функциональность, найдите DatastoreService.allocateIds() в documentation.

Смежные вопросы