Я использую конечные точки Google для облаков, чтобы хранить данные для приложения. Если я делать запросы к апи Айв создал я получаю:Нет класса Зарегистрированные конечные точки облака
com.google.api.client.googleapis.json.GoogleJsonResponseException: 400 Bad Request
11-23 09:39:03.711 27884-28100/com.nicky W/System.err﹕ {
11-23 09:39:03.711 27884-28100/com.nicky W/System.err﹕ "code": 400,
11-23 09:39:03.711 27884-28100/com.nicky W/System.err﹕ "errors": [
11-23 09:39:03.711 27884-28100/com.nicky W/System.err﹕ {
11-23 09:39:03.711 27884-28100/com.nicky W/System.err﹕ "domain": "global",
11-23 09:39:03.711 27884-28100/com.nicky W/System.err﹕ "message": "java.lang.IllegalArgumentException: No class 'com.nicky.mybackend.Post' was registered",
11-23 09:39:03.711 27884-28100/com.nicky W/System.err﹕ "reason": "badRequest"
11-23 09:39:03.711 27884-28100/com.nicky W/System.err﹕ }
11-23 09:39:03.711 27884-28100/com.nicky W/System.err﹕ ],
11-23 09:39:03.711 27884-28100/com.nicky W/System.err﹕ "message": "java.lang.IllegalArgumentException: No class 'com.nicky.mybackend.Post' was registered"
11-23 09:39:03.711 27884-28100/com.nicky W/System.err﹕ }
Я знаю, что я есть Post.class зарегистрирован в классе ObjectifyService, и я могу создавать почтовые объекты в андроида клиента. Вот класс objectifyService:
public class OfyService {
static {
ObjectifyService.register(RegistrationRecord.class);
ObjectifyService.register(Post.class);
}
public static Objectify ofy() {
return ObjectifyService.ofy();
}
public static ObjectifyFactory factory() {
return ObjectifyService.factory();
}
}
Здесь метод конечных точек, из которого я звоню в андроида клиента:
@ApiMethod(
name = "insert",
path = "post",
httpMethod = ApiMethod.HttpMethod.POST)
public Post insert(Post post) {
ofy().save().entity(post).now();
logger.info("Created Post with ID: " + post.getId());
return ofy().load().entity(post).now();
}
Я делаю звонки на бэкенд из AsyncTask так:
Я не защищал серверную часть вещей, но я делаю запросы с помощью GoogleAccountCredential, у которого есть имя пользователя из учетной записи android на телефоне. Я не знаю ни о каком другом месте, где мне нужно регистрировать классы модели конечных точек. Любая помощь приветствуется спасибо
любой шанс у вас есть неправильно статический импорт fory()? Это должно быть OfyService.ofy(), а не ObjectifyService.ofy(). – stickfigure
спасибо, что исправил проблему .... у меня это было как импорт: import com.googlecode.objectify.ObjectifyService вместо моего собственного класса ofyservice –
Это довольно простая ошибка, чтобы сделать, что стоит пересмотреть «лучший практики "рекомендовать делать регистрацию другим способом (скажем, слушателем конкурса сервлетов). С другой стороны, это работает и в тестовых случаях. – stickfigure