Проблема с разграничением путей - PullRequest
0 голосов
/ 31 июля 2011

У меня проблема с переменной Jax-rs @Path, мне нужно различать следующие два пути

  1. @ Путь ({домен} / {идентификатор})
  2. @ Путь ({домен} / {имя файла})

пример URL для обоих:
1. http://localhost:8080/in.com/lrth09erdfgwe
2. http://localhost:8080/in.com/lrth09erdfgwe.xml

Я думаю, нам нужно использовать регулярные выражения в pathparam! Я попробовал это, но не смог получить это! Я использую это приложение в интеграции Resteasy с Spring-MVC. PLZ совет по этому вопросу!

Ура!

1 Ответ

0 голосов
/ 31 июля 2011

Вы управляете сопоставлением параметра пути, помещая в параметре двоеточие, а затем шаблон RE для его сопоставления, например так (где RE равно .+[.].+, что соответствует чему угодно, если оно где-то посередине есть хотя бы одна точка):

@Path("{domain}/{filename:.+[.].+}")

Я использую это в одном из моих сервисов (который использует Apache CXF, но я полагаю, что это особенность всех реализаций JAX-RS). Будьте осторожны, хотя! Вы можете сопоставить разделители пути с этим, что может привести к путанице. (Я думаю, что вам может быть лучше изменить структуру URI, чтобы не было двусмысленности, например, {domain}/id/{id} и {domain}/files/{filename}. Могу поспорить, что ваши клиенты будут ворчать гораздо быстрее.)

...