我已将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客户端中指定伪路径参数的值?
感谢。