当前位置: 首页 > 面试题库 >

RESTEasy客户端:重建对象

周峻
2023-03-14
问题内容

我正在玩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:无法找到内容类型为application / json; charset =“
utf-8”的MessageBodyReader并键入接口java.util.Set

我尝试使用POJO而不是java.util.Set,但是我遇到了同样的异常。没有引发异常的唯一事情是使用String而不是Set。

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


问题答案:

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



 类似资料:
  • 我正在尝试编写简单的RESTEasy客户端。下面给出了示例代码: 我在行中得到异常: 我在控制台中看到以下错误: 更新:我还尝试在POM中添加resteasy jax-rs依赖关系。我还通过在web.xml中添加以下行来验证是否启用了ResteasyProviderFactory: 请查看以下maven依赖项列表: 但这不起作用。 但现在我看到了其他方法的类似异常: 我在行中看到了这个例外: 奇怪

  • 我有一个客户机包,其中定义了我的REST客户机,包含以下接口和模型: 编辑: 我使用的是quarkus-rest-client-jackson和quarkus-rest-client依赖项,任何地方都没有jsonb依赖项。 我试图缩小这个问题的范围:我已经将客户机/请求类移到我的主包中,并且我已经删除了lombok注释,并将我的具有Jackson注释的字段公之于众。还是同样的问题...谁能指出我做

  • 我有一个使用RESTEasy的简单客户端,如下所示: 服务器配置为在以及一条有用的信息。正在抛出一个。除了包装在中之外,我如何使捕获异常并以字符串形式返回响应的有用消息。我尝试了各种实现,但似乎都是正确的。上述代码从未调用。我错过了什么? 我目前的解决方法是使用,然后执行并将原始状态填充到响应实体中。这样我就避免了异常抛出。

  • 创建客户端有两种方式,一种是直接使用特化的构造器函数,另一种是使用工厂构造器函数。 第一种方式返回的是具体的客户端结构体指针对象,第二种方式返回的是客户端接口对象。 使用特化的构造器函数创建客户端 特化的构造器函数有下面几个: func NewHTTPClient(uri ...string) (client *HTTPClient) func NewTCPClient(uri ...string

  • 我在RestEasy客户端-3.0.8中得到以下异常

  • Hy,我有一个问题使用resteacy客户端方法与PathParam。我解释: 我有一个在客户端和服务器端使用的接口: 在服务器端,这正如预期的那样工作,我有一个具体的类来实现这个接口,我的API是在线的。没问题。我可以从URL调用此API方法:http://myapi.dev/1.0/user/1234/followers 但是,在客户端,我使用以下代码轻松地调用API接口: 我收到一个异常:j