8
votes

Activer la compression GZIP dans le client CXF

J'essaie de faire utiliser mon client GZIP. J'ai la fonction GZIP activée sur le serveur. Il semble que le client n'envoie pas l'en-tête correct: xxx pré>

voici le code où je crée le client: p> xxx pré>

L'interface IData Les outils ont l'annotation GZIP: P>

@WebService
@GZIP
public interface IData ....


2 commentaires

L'en-tête vient-il d'un analyseur de réseau, comme TcPmon?


J'utilise le moulin pour proxy la connexion et obtenez une vidage du trafic.


5 Réponses :


18
votes

solution:

Après une révision, c'est ce dont vous avez besoin: xxx

après cela, il fonctionnait.


1 commentaires

Et pour les clients reposants JAX-RS: Client client = WebClient.client (port); ClientConfiguration config = webclient.getconfig (client); config.gettinIntercepteurs (). Ajouter (nouveau gzipinterceptor ()); config.getoutintercepteurs (). Ajouter (nouveau gzipoutinterceptor ());



1
votes

Si je comprends de http://fusource.com/ Docs / ESB / 4.4 / CXF_JAXWS / JAVAFIRAST-ANNOTATTECXF-COMPRESS.HTML

"GZIP est une amélioration négociée. C'est une demande initiale d'un Le client ne sera pas gzippé, mais un en-tête acceptera sera ajouté et, si Le serveur prend en charge la compression GZIP, la réponse sera gzipped et Toute demande ultérieure sera également. "

Vérifiez si le service Web accepte GZIP et vérifiez uniquement les demandes après la première demande.


1 commentaires

Ce dont j'ai besoin, c'est de configurer le client qu'il envoie l'en-tête pour déclencher la négociation que vous mentionnez. Mais merci!



0
votes

Réponse plus détaillée à la réponse mentionnée ci-dessus

Client client = ClientProxy.getClient(port);

//this line to send compressed(gzip) request to server
client.getOutInterceptors().add(new GZIPOutInterceptor());

//this in to uncompress server response at client side
client.getInInterceptors().add(new GZIPInInterceptor());


1 commentaires

pourquoi il est voté ..? fourni plus de clarification ..?



1
votes

Lorsque seulement gzip'in la réponse du serveur et non la demande du client, vous devez ajouter l'en-tête et le gzipinterceptor comme suivant: XXX


0 commentaires

1
votes

Le moyen le plus simple d'activer GZIP: xxx

gzipfeature ajoutera automatiquement "en intercepteur", "intercepteur" et "intercepteur" et "intercepteur de défaut".


0 commentaires