2012-02-16 77 views
1

我正在开发一个GWT应用程序以从Freebase获取查询结果。这是我的EntryPoint类的代码。在Java中使用Freebase API

package com.google.tracker.client; 

import com.freebase.api.Freebase; 
import com.freebase.json.JSON; 
import com.google.gwt.core.client.EntryPoint; 

public class Tracker implements EntryPoint{ 

    public void onModuleLoad() { 
     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(); 
    } 
} 

我收到以下错误:

[ERROR] Line 10: No source code is available for type com.freebase.api.Freebase; did you forget to inherit a required module? 
[ERROR] Line 21: No source code is available for type com.freebase.json.JSON; did you forget to inherit a required module? 

可能是什么,这些可能的原因是什么?

+0

除非您正在为Google编写此代码,否则您不应该在代码中使用com.google命名空间。 – 2012-02-18 16:20:31

回答

3

Freebase的API包不是GWT模块,因此无法转换为Javascript。这就是为什么有“没有可用的源代码”。您需要从服务器拨打Freebase并将结果发送给客户端。

+0

这可能是一个问题,我会尽力回复在一天.. :) – 2012-02-16 17:45:34

+0

谢谢吨! – 2012-02-16 17:59:37

+0

检查代码编辑 – 2012-02-17 05:26:03