Как настроить параметр пути в клиенте RESTeasy

Я использовал 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?

Спасибо.


person mschayna    schedule 18.12.2011    source источник
comment
Для тех, кому интересно, теперь я использую два отдельных интерфейса для сервера (с регулярным выражением) и для клиента (с простым строчным путем). Я сообщаю об этом как об улучшении системы отслеживания ошибок RESTeasy, мы увидим, issues.jboss.org/browse/ РЕСТИЗИ-634   -  person mschayna    schedule 19.12.2011
comment
Обновление: я перешел на сервер REST в Джерси более года назад. Джерси поддерживает клиента совершенно по-другому, поэтому мне приходится сталкиваться с другими проблемами :)   -  person mschayna    schedule 05.02.2014


Ответы (1)


Вы можете увидеть ответ здесь URL-адреса без учета регистра с JAX-RS: Нет Это также прилагаемый RFC к этому правилу

person Franck    schedule 06.01.2014
comment
Это немного устарело, и я уже прочитал ответ (и фактически добавил свой ответ на этот вопрос), но, наконец, я могу отметить это как ответ :) - person mschayna; 05.02.2014