Chúng tôi đã xây dựng một số dịch vụ web REST (jax-rs) bằng Apache CXF. Chúng trả về một phản hồi JSON.Bộ lọc Servlet so với máy đánh chặn CXF để sửa đổi nội dung yêu cầu và phản hồi?
Tôi hiện cần sửa đổi một số thông số yêu cầu và nội dung phản hồi. (Về cơ bản, chúng tôi cần mã hóa/mã hóa một số dữ liệu được dịch vụ trả về và giải mã/giải mã cùng một dữ liệu khi nó được sử dụng làm tham số trong cuộc gọi dịch vụ tiếp theo.)
Có vẻ như tôi có ít nhất 4 lựa chọn ở đây:
- sử dụng bộ lọc Servlet
- sử dụng một CXF Interceptor
- sử dụng JAX-RS lọc
- không sử dụng bất kỳ mô hình cụ thể, và thực hiện việc mã hóa/giải mã trong thực tế logic dịch vụ.
Tôi đã sử dụng Bộ lọc Servlet trước đây và hiểu chính xác cách sửa đổi thông số yêu cầu và nội dung phản hồi, vì vậy tôi nghiêng về phía đó. Tuy nhiên, tôi đang mở để sử dụng bộ lọc đánh chặn CXF hoặc bộ lọc JAX-RS nếu đó là cách 'chính xác' hơn để giải quyết vấn đề này khi sử dụng CXF. Nhưng dựa trên tài liệu, tôi không thực sự hiểu được cách để thực hiện việc này. Ví dụ, tôi có sử dụng phương thức setContent của đối tượng Message để thay đổi phản hồi JSON không? Tham số định dạng trong trường hợp đó, chỉ là String.class là gì?
Sẽ rất tuyệt nếu bạn có thể giải thích lý do đằng sau việc lựa chọn của mình. – andthereitgoes
tôi có cùng một câu hỏi, nếu CXF đã cung cấp máy đánh chặn, tại sao vẫn cần phải có bộ lọc? – Chailie
@Chailie - không có lý do chính đáng để đi với bộ lọc JAX-RS trên CXF Interceptor, tôi nghĩ lý do chính tôi chọn là JAX-RS cụ thể, nhưng một thiết bị đánh chặn CXF cũng đã hoạt động. Lưu ý rằng JAX-RS 2.0 đã hết, vì vậy các bộ lọc và bộ chặn JAX-RS đã trở thành một phần của thông số kỹ thuật và chắc chắn sẽ là cách đi cùng với hiện tại Công nghệ. –