Невозможно получить доступ к бесплатной базе с помощью приложения 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: