2011-05-14 5 views
4

RESTEasy를 사용하여 REST 서비스를 사용하고 있으며 Twitter의 검색 API를 사용해 보겠습니다.RESTEasy 클라이언트 : 개체 재구성

그래서 나는이 인터페이스를 만들 :

public interface SimpleClient { 

    @GET 
    @Path("search.json") 
    @Produces("application/json") 
    ClientResponse<Set<String>> getSearchResults(
     @QueryParam("q") String hashtag, 
     @QueryParam("result_type") String resultType 
); 
} 

을하고 그것을 호출 :

SimpleClient client = 
    ProxyFactory.create(SimpleClient.class,"http://search.twitter.com/"); 
ClientResponse<Set<String>> response = 
    client.getSearchResults("#wowodc","recent"); 
System.out.println(response.getEntity(Set.class)); 

그러나 나는군요 :

ClientResponseFailure을 : 콘텐츠 MessageBodyReader를 찾을 수 없습니다 형식 application/json; charset = "utf-8"및 유형 인터페이스 java.util.Set

java.util.Set 대신 POJO를 사용해 보았습니다.하지만 같은 종류의 예외가 발생합니다. 예외를 throw하지 않는 유일한 방법은 Set 대신 String을 사용하는 것입니다.

웹에서 예제 코드를 읽으면 엔티티 유형으로 Set 또는 POJO가 작동한다고 생각했지만 실제로는 그렇지 않습니다. 트위터에 대한 쿼리가 유효한 결과를 반환했습니다.

답변

2

JSON 응답을 비 정렬화할 수있는 RESTEasy 공급자를 포함해야합니다. 사용할 수있는 Jackson 파서 라이브러리를 기반으로 한 라이브러리가 있습니다.이 라이브러리는 doc here에 설명되어 있습니다.

+0

감사합니다. Jackson 파서와 함께 작동시켜야합니다. –

+1

구현 방법을 공유해 주시겠습니까? 제공된 링크/페이지에 예제가 없습니다. – delkant

+1

resteasy-jackson-provider를 의존성으로 추가하는 것은 defalt 구성으로 충분해야합니다. – vinga