2013-07-24 19 views
7

Tôi đang trong quá trình di chuyển dự án khách hàng Jerset 1.x sang Jersey 2.0 như thế nào.Tương đương Jersey 2.0 của GZIPContentEncodingFilter

Tôi thấy rằng GZIPContentEncodingFilter không còn tồn tại nữa. Có cái gì đó tương tự?

tôi stumbled trên GZIPEncoder nhưng không chắc chắn làm thế nào để cắm nó trong

Trong Jersey 1,17 tôi sử dụng:.

WebResource r = ... 
r.register(new GZIPContentEncodingFilter()); 

Trong Jersey 2,0 tôi tìm kiếm somethink như:

WebTarget r = ... 
r.register(new GZIPContentEncodingFilter()); 
+0

Bạn đang sử dụng jersey 2.0 ở phía máy chủ? Nếu vậy, tôi có thể hỏi cách bạn có mã hóa gzip để hoạt động không? (Tôi đã đăng một câu hỏi liên quan đến điều này [ở đây] (http://stackoverflow.com/questions/19751014/gzip-encoding-in-jersey-2).) – aioobe

+0

Xin chào, thật không may ở phía bên kia là một hệ thống kế thừa. –

Trả lời

9

Sử dụng

WebTarget r = ... 
r.register(GZIPEncoder.class); 
+0

Xin chào, tôi có thêm một số lỗi trong dự án của tôi. Tôi sẽ chấp nhận câu trả lời của bạn khi tôi hoàn thành và có thể thử nó. Cảm ơn! –

+1

Chỉ hoạt động với tôi nếu được thực thi sau r.register (EncodingFilter.class). Trình tự gọi tương tự đã gặp trong các bài kiểm tra đơn vị Jersey. Xem https://github.com/jersey/jersey/blob/master/tests/e2e/src/test/java/org/glassfish/jersey/tests/e2e/common/EncodingTest.java – Alfishe

0

Phương thức anotate với @GZIP, Nó sử dụng bộ mã hóa GZIP và xóa GZIPContentEncodingFilter từ tệp web.xml giải quyết vấn đề

+0

Bạn có thể vui lòng cung cấp liên kết tới '@ GZIP' không? –

+0

https://jersey.java.net/documentation/latest/user-guide.html#d0e6558 –

+0

Tôi đã cố gắng an tâm có hỗ trợ trực tiếp http://docs.jboss.org/resteasy/docs/2.0.0.GA/userguide /html/gzip.html –

4

Hầu hết các chi tiết có thể được lấy từ các bài kiểm tra đơn vị riêng Jersey. Vì vậy, để cho phép phản hồi được nén bằng gzip hoặc DEFLATE algorighms (trong chi phí tăng tải CPU và độ trễ), bạn nên sử dụng: Phương pháp cấu hình

WebResource r = ... 
r.register(EncodingFilter.class); // Allow to process encodings 
r.register(GZIPEncoder.class); 
r.register(DeflateEncoder.class); 

Xem ở Jersey kiểm tra đơn vị mã hóa v2.x: EncodingTest

0

Trong Jersey 2.x (tôi sử dụng 2,26):

WebTarget target = ... 
target.register(GZipEncoder.class); 

tôi không phải bao gồm EncodingFilter/DeflateEncoder.

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