Я использую Джерси в проекте REST, и мне нужно использовать регулярное выражение.
Копаться в этом просто:
@Path("/resources")
public class MyResource {
@GET
@Path("{subResources:.*}")
public String get(@PathParam("subResources") String subResources) {...}
}
Но, делая это, метод получает запрос только, если я передаю 1 параметр, например:
GET:.../resources/firstSubResource
Если я использую более одного параметра, метод не получает запрос, например:
GET:.../resources/firstSubResource/seccondSubResource/thirdSubResource
Я могу использовать regex только в том случае, если в моем @Path содержится текстовое значение или , например:
@Path("{SubResource1}/{subResources:.*}")
или
@Path("/hardCodeString/{subResources:.*}")
Сегодня я мог бы работать с этим решением переменной, но не для моей перспективы.
Мой web.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, одним в классе и другом в методе.
- Любые советы приветствуются!
Привет