Die Dokumentation zu RESTEasy besagt, dass Sie zusätzlich zur Annotation Ihres Serverendpunkts mit der Annotation "@GZIP" eine Datei namens "javax.ws.rs.ext.Providers" im Klassenpfad Ihrer Laufzeitumgebung erstellen müssen Fügen Sie den Klassennamen "org.jboss.resteasy.plugins.interceptors.encoding.GZIPEncodingInterceptor" in die Datei ein.RESTEasy GZIP-Unterstützung aktivieren?
Ich habe alle der oben genannten, aber die Antwort vom Server zurück kommt ist nicht komprimiert, obwohl die Antwort "Content-Encoding" Header ist "gzip" (dh der Antworttext ist Klartext/Json, trotz was der Header sagt).
Die Datei javax.ws.rs.ext.Providers befindet sich definitiv in meinem Ordner WEB-INF/classes im .war- und im App-Ordner, wenn sie auf Tomcat bereitgestellt wird, aber RESTEasy ignoriert sie.
Also, gibt es etwas, das ich vermisse? Hat jemand das funktioniert?
EDIT: Okay, ich entdeckte, dass RESTEasy tatsächlich den vollständigen Pfad "META-INF/services/javax.ws.rs.ext.Providers" sucht, also musste ich diesen Ordnerpfad plus Datei in meinem erstellen Ressourcenordner. Und ja, das ist verwirrend, da es im WAR-Archiv bereits einen META-INF-Ordner gibt; Das Einfügen des Unterverzeichnisses "services" und der Datei "javax.ws.rs.ext.Providers" in diesen META-INF-Ordner funktioniert jedoch NICHT. Seufzer.
Haben Sie einen Paket-Sniffer verwendet, um festzustellen, dass dieser nicht komprimiert ist? – Namphibian
Ja, ich habe TCPMon verwendet, um den Datenverkehr zu untersuchen und festgestellt, dass der Datenverkehr unkomprimiertes JSON war, obwohl der HTTP-Header behauptet, dass es gzip ist. –