2013-07-24 6 views
7

Jestem w trakcie migracji projektu klienta Jerset 1.x do wersji Jersey 2.0.Co to jest odpowiednik GZIPContentEncodingFilter w wersji Jersey 2.0

Znalazłem, że GZIPContentEncodingFilter już nie istnieje. Czy jest coś podobnego?

potknąłem GZIPEncoder ale nie jestem pewien, w jaki sposób podłączyć go

w Jersey 1,17 używam.

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

w Jersey 2,0 wyszukać somethink jak:

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

Czy używasz także koszulki 2.0 po stronie serwera? Jeśli tak, czy mogę zapytać, jak działało kodowanie gzip? (Wysłałem pytanie dotyczące tego [tutaj] (http://stackoverflow.com/questions/19751014/gzip-encoding-in-jersey-2).) – aioobe

+0

Witam, niestety po drugiej stronie jest stary system. –

Odpowiedz

9

Zastosowanie

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

Hej, mam więcej błędów w moim projekcie. Przyjmuję twoją odpowiedź, kiedy skończę i będę mógł spróbować. Dzięki! –

+1

Działa tylko dla mnie, jeśli jest wykonywany po r.register (EncodingFilter.class). Ta sama sekwencja wywoływania spotkała się w testach jednostkowych w Jersey. Zobacz https://github.com/jersey/jersey/blob/master/tests/e2e/src/test/java/org/glassfish/jersey/tests/e2e/common/EncodingTest.java – Alfishe

0

Metoda Anotate z @GZIP, Wewnętrznie używa enkodera GZIP i usuwa GZIPContentEncodingFilter z web.xml, który rozwiązuje problem

+0

Czy mógłbyś podać link do '@ GZIP'? –

+0

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

+0

Próbowałem resteasy ma bezpośrednie wsparcie http://docs.jboss.org/resteasy/docs/2.0.0.GA/userguide /html/gzip.html –

4

Większość informacji można uzyskać z własnych testów jednostkowych Jersey. tak, aby umożliwiać Odpowiedzi mają być skompresowane przy użyciu gzip lub Deflate algorighms (kosztów zwiększonego obciążenia procesora i opóźnienia) należy użyć:

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

patrz metoda configure w badanej jednostki kodowania 2.x Jersey: EncodingTest

0

Jersey 2.x (używam 2.26):

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

nie muszą zawierać EncodingFilter/DeflateEncoder.

Powiązane problemy