2012-02-17 33 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

服务器日志中的错误是什么? – 2012-02-17 13:36:06

+0

我无法看到错误。我只想知道这个错误的可能原因 – 2012-02-17 13:57:15

+0

你不能粘贴你的控制台的内容? – 2012-02-17 14:02:22

回答

1

该代码甚至没有去编译,因为你有名称冲突与进口(重复的Freebase,JSON)。在开始之前,您需要解决这个问题。

据我所知,谷歌并没有任何使用命名空间com.google.tracker的东西。如果这是您的代码this question,则应该将软件包名称更改为您控制的名称空间中的某个名称。

您正在使用的客户端库使用已弃用的Freebase API。由于您正在进行新的开发,您应该使用新的API。

如果修复所有基本问题后仍然有问题,请更新您的问题或发布新问题。