RestEasy 客户端不能使用@PathParam 参数
RestEasy client can't use @PathParam arguments
嘿,我在使用带有 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);
}
在服务器端,这按预期工作,我有一个实现此接口的具体 class,我的 API 在线。没问题。我可以从 URL 中调用此 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。
我不明白在这种情况下我做错了什么。
你知道我该如何解决这个问题吗?
谢谢
塞布
对不起,我弄错了。
我导入了 javax.websocket.server.PathParam 注释来代替 javax.ws.rs.PathParam.
因此,Resteasy ClientProxy 无法创建良好的 PathParamProcessor。
抱歉这个错误。
嘿,我在使用带有 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);
}
在服务器端,这按预期工作,我有一个实现此接口的具体 class,我的 API 在线。没问题。我可以从 URL 中调用此 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。
我不明白在这种情况下我做错了什么。 你知道我该如何解决这个问题吗?
谢谢 塞布
对不起,我弄错了。
我导入了 javax.websocket.server.PathParam 注释来代替 javax.ws.rs.PathParam.
因此,Resteasy ClientProxy 无法创建良好的 PathParamProcessor。
抱歉这个错误。