Tôi muốn để có thể truy cập vào các URL còn lại như sau:Jersey có hỗ trợ ký hiệu đô la trong chú thích Đường dẫn của JAX-RS không?
URL đầu tiên hoạt động tốt. Tôi gặp sự cố với URL $ count sử dụng triển khai JAX-RS của Jersey.
Đây là mã cho tài nguyên.
@Path("/helloworld")
public class HelloWorldResource {
@GET
@Produces("text/plain")
public String getClichedMessage() {
return "Hello World!";
}
@GET
@Path("\\$count")
@Produces("text/plain")
public String getClichedMessage(
@PathParam("\\$count") String count) {
return "Hello count";
}
}
Tôi cũng đã thử "$ count" trong cả @Path và @PathParam nhưng điều đó cũng không hoạt động.
Lưu ý: Nếu tôi xóa ký hiệu đô la khỏi tất cả mã ở trên thì nó hoạt động tốt cho URL localhost: 9998/helloworld/count. Tuy nhiên, tôi cần ký hiệu đô la để có trong URL vì đây sẽ là một ứng dụng sản xuất OData.
Tôi chắc rằng ký hiệu $ có ý nghĩa ngữ nghĩa trong thông số mã hóa URL. Tôi không thể tưởng tượng rằng bạn có thể sử dụng nó trong một URL thông thường mà không cần mã hóa nó. – Perception
Ký hiệu đô la là hợp pháp để sử dụng trong URL mà không cần mã hóa. Nó được sử dụng nhiều trong Giao thức Dữ liệu Mở, là một giao thức dựa trên phần còn lại. Xem [link] (http://www.odata.org/developers/protocols/uri-conventions) – Jerome