2011-05-14 78 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 -type application/json; charset =“utf-8”并输入接口java.util.Set

我已经尝试使用POJO而不是java.util.Set,但我得到了同样的异常。唯一没有抛出异常的是使用String而不是Set。

通过阅读Web上的一些示例代码,我认为Set或POJO作为实体类型可以工作,但它不适合我。对Twitter的查询确实返回了有效的结果。

回答

2

您需要确保包含可以解组JSON响应的RESTEasy提供程序。有一个基于您可以使用的Jackson解析器库,它在文档here中进行了描述。

+0

谢谢,得到它与杰克逊解析器合作。 – 2011-05-24 02:03:43

+1

你能分享一下你是如何实现它的吗?提供的链接/页面上没有任何示例。 – delkant 2014-05-13 15:45:49

+1

添加resteasy-jackson-provider作为依赖项应该足够用于配置配置 – vinga 2016-07-26 13:54:49