Невозможно получить доступ к бесплатной базе с помощью приложения GWT - PullRequest
0 голосов
/ 17 февраля 2012

Я разрабатываю приложение 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 ]

1 голос
/ 18 февраля 2012

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

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

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

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

0 голосов
/ 17 февраля 2012

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

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

Где вы получили используемую библиотеку?

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

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

...