Невозможно получить доступ к бесплатной базе с помощью приложения GWT

Я разрабатываю GWT-приложение для получения результатов запроса из Freebase. Теперь я использую следующий код в своем классе реализации сервиса.

import com.freebase.api.Freebase;
import com.freebase.json.JSON;
import com.google.tracker.client.FreebaseService;
import com.google.tracker.client.freebaseapi.Freebase;
import com.google.tracker.client.freebasejson.JSON;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;

public class FreebaseServiceImpl extends RemoteServiceServlet implements FreebaseService{

public String getDirectorName() throws IllegalArgumentException{
    Freebase freebase = Freebase.getFreebase();
    String query_str = "{" +
            "'id':   null," +
            "'type': '/film/film'," +
            "'name': 'Blade Runner'," +
            "'directed_by': [{" +
            "'id':   null," +
            "'name': null" +
            "}]" +
            "}​".replace('\'', '"');

    JSON query = new JSON(query_str);
    JSON result = freebase.mqlread(query);
    @SuppressWarnings("unused")
    String director = result.get("result").get("directed_by").get(0).get("name").string();
        return director;
    }
}

Я получаю следующую ошибку при запуске приложения:

500 Ошибка вызова на сервере; подробности смотрите в журнале сервера.

Какие могут быть возможные причины для этого?

2 ответа

Решение

Этот код даже не собирается компилироваться, потому что у вас есть конфликты имен с вашими импортами (дубликат Freebase, JSON). Вам нужно будет это исправить, прежде чем вы сможете начать.

Google, насколько я знаю, не имеет ничего, что использует пространство имен com.google.tracker. Если это ваш код из этого вопроса, вы должны изменить имя пакета на что-то в пространстве имен, которым вы управляете.

Используемая клиентская библиотека использует устаревшие API Freebase. Поскольку вы делаете новую разработку, вы должны использовать новые API.

Если у вас все еще есть проблемы после того, как вы исправите все основные вещи, обновите свой вопрос или опубликуйте новый.

Вы можете использовать эту клиентскую библиотеку для использования API Freebase

http://code.google.com/p/google-api-java-client/

Где вы взяли библиотеку, которую используете?

Документация по API доступна здесь - обратите внимание, что вам нужно использовать новые API:

http://wiki.freebase.com/wiki/API

Другие вопросы по тегам