RestEasy客户端无法使用@PathParam参数

时间:2016-01-18 12:53:20

标签: java resteasy

Hy,我在使用带有PathParam的resteasy客户端方法时遇到了问题。我解释一下:

我在客户端和服务器端使用了一个接口:

@Path("/1.0/user")
@Consumes({"application/json"})
@Produces({"application/json"})
public interface UserApi {
  @GET
  @Path("/{userid}/followers")
  @PrivateApi
  public List<DXUser> getUserFollowers(@PathParam("userid") long userId);
}

在服务器端,这按预期工作,我有一个实现此接口的具体类,我的API在线。没问题。我可以通过以下网址调用此API方法:http://myapi.dev/1.0/user/1234/followers

但是,在客户端,我使用接口通过以下代码轻松调用API:

ResteasyClient client = new ResteasyClientBuilder().build();
ResteasyWebTarget target = client.target("http://myapi.dev");
UserApi api = target.proxy(UserApi.class);
List<DXUser> users = api.getUserFollowers(1234);

我收到一个异常:java.lang.IllegalArgumentException:你没有提供足够的值来填充路径参数

我尝试使用@POST代替@GET方法。我有同样的错误。 我尝试@QueryParam,它的工作原理!因此问题只涉及@PathParam。

在这种情况下,我无法理解我做错了什么。 你知道我该如何解决这个问题吗?

谢谢 SEB

1 个答案:

答案 0 :(得分:1)

对不起,我弄错了。

我已导入 javax.websocket.server.PathParam 注释来代替 javax.ws.rs.PathParam

因此,Resteasy ClientProxy无法创建良好的PathParamProcessor。

抱歉这个错误。