2012-02-17 12 views
0

GWTアプリケーションを開発して、Freebaseからクエリ結果を取得します。今私はサービス実装クラスで次のコードを使用しています。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コールは、サーバー上で失敗しました。詳細はサーバーログを参照してください。

これらの原因としてはどのようなものが考えられますか?

+0

サーバログのエラーは何ですか? –

+0

エラーが表示されません。私はこのエラーの原因を知りたいだけです –

+0

コンソールの内容を貼り付けることはできませんか? –

答えて

1

(Freebase、JSONを複製します)。開始する前に修正する必要があります。

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

使用しているクライアントライブラリでは、廃止予定のFreebase APIが使用されています。新しい開発をしているので、新しいAPIを使用する必要があります。

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

0

あなたは、あなたが使用しているライブラリを手に入れた

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

FreebaseのAPIを使用するには、このクライアントライブラリを使用することができますか?

APIのドキュメントはこちらです - あなたは新しいAPIを使用する必要があることに注意してください:このコードもあなたの輸入で、名前の競合を持っているので、コンパイルするつもりはない

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

関連する問題