gpt4 book ai didi

java - Resteasy 3 及更高版本中 ClientResponse 的替代方案是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:06:39 26 4
gpt4 key购买 nike

我目前正在使用 Resteasy 2.3.6.Final 并想升级到 Resteasy 3.0.4.Final。然而,API doc表示该类现在已弃用。所以我的问题是:

  1. ClientResponse 被弃用的原因是什么?这与 Resteasy 3+ 中引入 JAX-RS 2.0 的事实有关吗?
  2. 现在推荐的Resteasy资源返回类型是什么?我读了user doc , 在第 47.2 节中有一些例子。如果您想取回所有内容,它建议使用 javax.ws.rs.core.Response,但这将删除通用参数。如何保留通用参数?

感谢您的帮助。

编辑 1

这是我正在谈论的例子。

我目前的一些代码是这样的:

   @GET
@Path("matrixParam")
@Produces("application/json")
ClientResponse<Matrix> getMatrix(@MatrixParam("param")String param);

ClientResponse 采用通用参数。如果我改用 Response,那么它会变成:

   @GET
@Path("matrixParam")
@Produces("application/json")
Response getMatrix(@MatrixParam("param")String param);

并且删除了通用参数。这会很不方便,因为调用者需要知道返回的对象是什么类型。

编辑2

answer from PascalRestful Java with JAX-RS 2.0 一书都说不再需要泛型参数,因为接口(interface)方法可以直接返回所需的类型。感谢 Pascal 的回答。

最佳答案

您不再需要通用参数,因为您可以像这样在客户端接口(interface)方法中直接使用您自己的类型:

    @GET
@Path("matrixParam")
@Produces("application/json")
Matrix getMatrix(@MatrixParam("param")String param);

要查询远程服务,您可以使用 resteasy 客户端代理框架:

    Client client = ClientBuilder.newClient();
WebTarget target = client.target("http://host/path");
ResteasyWebTarget rsWebTarget = (ResteasyWebTarget)target;
SimpleMatrixClient simple = rsWebTarget.proxy(SimpleMatrixClient.class);
Matrix m = simple.getMatrix("myMatrixParamValue");

关于java - Resteasy 3 及更高版本中 ClientResponse 的替代方案是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20569716/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com