Tôi đang sử dụng Jersey trong một dự án REST của và tôi cần phải sử dụng biểu thức chính quy.@Path và biểu thức chính quy (Jersey/REST)
Đào về nó là đơn giản như:
@Path("/resources")
public class MyResource {
@GET
@Path("{subResources:.*}")
public String get(@PathParam("subResources") String subResources) {...}
}
Nhưng, làm như thế này, phương pháp này là nhận được yêu cầu chỉ nếu tôi đi 1 param, ví dụ:
GET : .../resources/firstSubResource
Nếu tôi sử dụng nhiều hơn thì 1 số phương pháp là không nhận được yêu cầu, ví dụ:
GET: .../nguồn/firstSubResource/seccondSubResource/thirdSubResource
Tôi chỉ có thể sử dụng regex nếu trong @Path của tôi chứa biến hoặc giá trị văn bản, ví dụ:
@Path("{SubResource1}/{subResources:.*}")
Hoặc
@Path("/hardCodeString/{subResources:.*}")
Hôm nay tôi có thể chạy với giải pháp này của một biến, nhưng không phải là OK cho quan điểm của tôi.
web.xml My
(...)
<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>
(...)
Câu hỏi
- Có ai đã làm việc với một cái gì đó liên quan?
- Tôi đang làm điều gì đó sai?
- Tôi nghĩ rằng đây có thể là một lỗi, khi làm việc với nhiều hơn thì một @Path, một trong Lớp và một trong Phương pháp.
- Bất kỳ mẹo nào được đánh giá cao!
Trân
Bạn có thể đăng thêm thông tin bao gồm: các thẻ và từ 'web.xml', URL mẫu, chú thích @Path khớp với từng URL mẫu và tất cả các giá trị của tham số đường dẫn mà Jersey nhận được không? (Chỉnh sửa câu hỏi của bạn để thêm thông tin này.) –
@Daniel - Cảm ơn câu trả lời của bạn, tôi thêm một số thông tin khác cho câu hỏi. Trân trọng! –