如何在RESTeasy客户端中设置路径参数

时间:2011-12-18 19:37:07

标签: java jax-rs resteasy

我已将RESTeasy用于服务器和客户端。客户端与服务器共享服务接口:

public interface Service {
    @Path("/start")
    @GET
    void start();
}

此服务的实现绑定到路径/api,因此可以在完整路径/api/start上访问方法start()。在客户端,代码非常简单:

RegisterBuiltin.register(ResteasyProviderFactory.getInstance());
Service service = ProxyFactory.create(Service.class, "http://server/api");
service.start();

但是我希望路径不区分大小写,所以我伪造了带有正则表达式的路径参数:

public interface Service {
    @Path("/{start:[Ss]tart}")
    @GET
    void start();
}

现在,客户端ProxyFactory不知道替换路径参数{start}的值,并且不进行任何替换,客户端以异常You did not supply enough values to fill path parameters结束。

但是当我尝试使用path参数作为方法参数时,它可以工作。

public interface Service {
    @Path("/{start:[Ss]tart}")
    @GET
    void start(@PathParam("start") String param);
}

如何在RESTeasy客户端中指定伪路径参数的值?

感谢。

1 个答案:

答案 0 :(得分:0)

你可以在这里看到答案Case-insensitive URLs with JAX-RS:否这也附加了此规则的RFC