2013-07-05 26 views
9

Tôi đang nghiên cứu về Jersey và RESTEasy. Thương lượng kiểu truyền thông cho XML và JSON hoạt động tốt, và tôi có thể tiêu thụ và sản xuất cả hai. Tuy nhiên, tôi đang được yêu cầu sản xuất và tiêu thụ phản hồi cho loại nội dung mới. Ví dụ, BSON, hoặc một loại nội dung tự tùy chỉnh. Tôi googled trực tuyến nhưng không thể tìm thấy nhiều thông tin trong đó. Có anyway, tôi vẫn có thể sử dụng chú thích @Produces và @Consumes trong JAX-RS cho loại nội dung mới không?Làm cách nào để xử lý/tạo kiểu nội dung mới/MediaType trong JAX-RS?

Xin cảm ơn trước.

Trả lời

16

Có, bạn có thể sử dụng @Produces@Consumes với các loại phương tiện tùy chỉnh. Để sử dụng các loại phương tiện truyền thông tùy chỉnh khi marshalling và unmarshalling nội dung bạn cần phải tạo ra MessageBodyWriterMessageBodyReader triển khai để xử lý các loại phương tiện truyền thông.

Dưới đây là làm thế nào để thực hiện một loại phương tiện tùy chỉnh:

  1. Chú thích phương pháp tài nguyên của bạn với @Consumes({"application/mycustomtype})@Produces({"application/mycustomtype}) theo yêu cầu.

  2. Triển khai các tùy chỉnh MessageBodyReaderMessageBodyWriter triển khai để hỗ trợ loại phương tiện tùy chỉnh của bạn.

  3. Chú thích của bạn MessageBodyReader với @Provider@Consumes({"application/mycustomtype})

  4. Chú thích MessageBodyWriter với @Provider
    @Produces({"application/mycustomtype})

+2

Hi, bạn cảm ơn cho gợi ý. Nhìn vào các lớp này trên Google và thấy các liên kết này cũng hữu ích. [messagebodywriter] (http://alex.vanboxel.be/2010/11/09/evolve-with-messagebodywriter/), [messagebodywriter2] (http://stackoverflow.com/questions/16741853/how-to- write-an-xml-messagebodywriter-provider-with-jersey) và [ví dụ của ibm] (http://www.ibm.com/developerworks/library/wa-jaxrs/) Cảm ơn bạn rất nhiều. – wwj

Các vấn đề liên quan