Я использую Jersey в проекте REST, и мне нужно использовать регулярное выражение.
Копать об этом просто, как:
@Path("/resources")
public class MyResource {
@GET
@Path("{subResources:.*}")
public String get(@PathParam("subResources") String subResources) {...}
}
Но, делая так, метод получает запрос только, если я передаю 1 параметр, например:
ПОЛУЧИТЬ: .../ресурсы/firstSubResource
Если я использую более 1 параметра, метод не получает запрос, например:
ПОЛУЧИТЬ: .../ресурсы/firstSubResource/второйSubResource/третийSubResource
Я могу использовать регулярное выражение, только если в моем @Path содержится переменная или текстовое значение, например:
@Path("{SubResource1}/{subResources:.*}")
Or
@Path("/hardCodeString/{subResources:.*}")
Сегодня я мог бы работать с этим решением переменной, но это не подходит для моей точки зрения.
Мой веб.xml
(...)
<servlet>
<servlet-name>Jersey Spring Web Application</servlet-name>
<servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.myproject.rest</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey Spring Web Application</servlet-name>
<url-pattern>/1.0/*</url-pattern>
</servlet-mapping>
(...)
Вопрос
- Кто-нибудь работал с чем-то связанным?
- Я делаю что-то не так?
- Я думаю, что это может быть ошибкой при работе с более чем одним @Path, одним в классе, а другим в методе.
- Любые советы приветствуются!
С Уважением
web.xml, образцы URL-адресов, аннотацию @Path, соответствующую каждому образцу URL-адресов, и все значения параметров пути, полученные Джерси? (Отредактируйте свой вопрос, чтобы добавить эту информацию.) - person Daniel Trebbien   schedule 01.06.2010