0

Freebase からクエリ結果を取得する GWT アプリケーションを開発しています。現在、サービス実装クラスで次のコードを使用しています。

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 サーバーで呼び出しが失敗しました。詳細については、サーバー ログを参照してください。

これらの考えられる理由は何ですか?

4

2 に答える 2

1

インポートと名前が競合しているため、そのコードはコンパイルされません(Freebase、JSONの複製)。始める前に、それを修正する必要があります。

私の知る限り、名前空間 com.google.tracker を使用するものは Google にはありません。それがこの質問のコードである場合は、パッケージ名を、制御する名前空間内のものに変更する必要があります。

使用しているクライアント ライブラリは、非推奨の Freebase API を使用しています。新しい開発を行っているため、新しい API を使用する必要があります。

すべての基本的な問題を修正しても問題が解決しない場合は、質問を更新するか、新しい質問を投稿してください。

于 2012-02-18T16:35:10.223 に答える
0

このクライアントライブラリを使用して、FreebaseAPIを使用できます

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

使用しているライブラリはどこで入手しましたか?

APIに関するドキュメントはこちらから入手できます-新しいAPIを使用する必要があることに注意してください。

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

于 2012-02-17T18:49:10.197 に答える