Я использовал RESTeasy для сервера и клиента. Клиент разделяет сервисный интерфейс с сервером:
public interface Service {
@Path("/start")
@GET
void start();
}
Реализация этой службы привязана к пути /api
, поэтому метод start () доступен по полному пути /api/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
.
Но когда я пытаюсь использовать параметр пути в качестве аргумента метода, он работает.
public interface Service {
@Path("/{start:[Ss]tart}")
@GET
void start(@PathParam("start") String param);
}
Как я могу указать значение для параметра поддельного пути в клиенте RESTeasy?
Спасибо.