0

Я использую конечные точки 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 на телефоне. Я не знаю ни о каком другом месте, где мне нужно регистрировать классы модели конечных точек. Любая помощь приветствуется спасибо

+5

любой шанс у вас есть неправильно статический импорт fory()? Это должно быть OfyService.ofy(), а не ObjectifyService.ofy(). – stickfigure

+1

спасибо, что исправил проблему .... у меня это было как импорт: import com.googlecode.objectify.ObjectifyService вместо моего собственного класса ofyservice –

+0

Это довольно простая ошибка, чтобы сделать, что стоит пересмотреть «лучший практики "рекомендовать делать регистрацию другим способом (скажем, слушателем конкурса сервлетов). С другой стороны, это работает и в тестовых случаях. – stickfigure

ответ

2

Я не хочу, чтобы назначить, совещаться правильный ответ, но этот комментарий был правильный ответ:

Blockquote Любой шанс у вас есть неправильный статический импорт для точено()? Она должна быть OfyService.ofy(), а не ObjectifyService.ofy()

Таким образом, при создании конечных точек Android-студия автоматического импорта библиотека

import com.googlecode.objectify.ObjectifyService; 

, когда вам нужно импортировать класс точено.

Итак, в моем случае я импортировать его вместо другого, и даже я поставил имя моего класса точено как:

OfyService.ofy().save().entity 

или

OfyService.ofy().delete().entity 
Смежные вопросы