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

당신은하는 Freebase API를

를 사용하려면이 클라이언트 라이브러리를 사용할 수 있습니다

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

당신은 당신이 사용하는 라이브러리를 얻을 않았다

?

하는 API에 대한 문서는 여기에서 확인할 수 있습니다 - 새 API를 사용할 필요가 있습니다 : 그것은 코드가 심지어 수입 당신은 이름 충돌을 가지고 있기 때문에 컴파일하지 않을

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