我正在使用RESTEasy来使用REST服务,而我正在尝试使用Twitter的搜索API.
所以我创建了这个界面:
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: Unable to find a MessageBodyReader of content-type application/json;charset=”utf-8″ and type interface java.util.Set
我尝试使用POJO而不是java.util.Set,但我得到了同样的异常.唯一没有抛出异常的是使用String而不是Set.
通过阅读Web上的一些示例代码,我认为Set或POJO作为实体类型可以工作,但它不适合我.对Twitter的查询确实返回了有效结果.
最佳答案 您需要确保包含可以解组JSON响应的RESTEasy提供程序.有一个基于你可以使用的Jackson解析器库,它在文档
here中描述.