2013-07-24 6 views
7

Sono in corso per migrare un progetto client Jerset 1.x su Jersey 2.0.Qual è l'equivalente di Jersey 2.0 di GZIPContentEncodingFilter

Ho trovato che GZIPContentEncodingFilter non esiste più. C'è qualcosa di simile?

ci siamo imbattuti nel corso GZIPEncoder ma non sono sicuro di come collegarlo

In Jersey 1.17 io uso:.

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

In Jersey 2,0 Cerco somethink come:

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

Stai usando jersey 2.0 anche dal lato server? In tal caso, posso chiederti come funziona la codifica gzip? (Ho postato una domanda riguardo a questo [qui] (http://stackoverflow.com/questions/19751014/gzip-encoding-in-jersey-2).) – aioobe

+0

Ciao, sfortunatamente dall'altra parte c'è un sistema legacy. –

risposta

9

Usa

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

Ehi, ho altri errori nel mio progetto. Accetterò la tua risposta quando avrò finito e posso provarla. Grazie! –

+1

Funziona solo per me se eseguito dopo r.register (EncodingFilter.class). La stessa sequenza di chiamata si è incontrata nei test delle unità di Jersey. Vedi https://github.com/jersey/jersey/blob/master/tests/e2e/src/test/java/org/glassfish/jersey/tests/e2e/common/EncodingTest.java – Alfishe

0

Metodo anotizzato con @GZIP, utilizza internamente GZIP Encoder e rimuove GZIPContentEncodingFilter da web.xml che risolve il problema

+0

Potresti fornire un link a '@ GZIP'? –

+0

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

+0

Ho tentato di ristabilire il supporto diretto http://docs.jboss.org/resteasy/docs/2.0.0.GA/userguide /html/gzip.html –

4

La maggior parte delle informazioni possono essere ottenute da propri test di unità di Jersey. in modo da consentire le risposte a essere compressi usando gzip o sgonfiare algorighms (in termini di costi di aumento del carico della CPU e la latenza) si dovrebbe usare:

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

See metodo configure a Jersey prova di unità di codifica v2.x: EncodingTest

0

In Jersey 2.x (io uso 2.26):

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

non ho dovuto includere EncodingFilter/DeflateEncoder.