Wie Sie die GZIP-Komprimierung aktivieren für SOAP-Antworten?
Habe ich eine einfache soap-webservice mit Spring
und CXF
. Ich bin jetzt versucht, GZIP-Komprimierung aktivieren, für die die xml-Anfragen.
Die folgenden akzeptiert komprimierte Anfragen, aber die Antwort nicht komprimiert. Warum?
@Component
@WebService
public class SoapService {
}
@Autowired
private SpringBus bus;
EndpointImpl end = new EndpointImpl(bus, new SoapService());
end.getFeatures().add(config.gzipFeature());
ep.publish("/SoapService");
Anfrage zu diesem SoapService:
Encoding: UTF-8
Http-Method: POST
Content-Type: text/xml;charset=UTF-8
Headers: {accept-encoding=[gzip,deflate], content-encoding=[gzip], connection=[Keep-Alive], content-type=[text/xml;charset=UTF-8], ...}
Antwort (leer-Header!!):
Content-Type: text/xml
Headers:
Payload: ...
Warum ist die Antwort nicht mit gzip komprimiert?
- Ich schlage vor, um das senden einer xml-Nachricht im soap-body als base64-kodierten string, komprimierte Binär-Daten-und client-client wird dekomprimiert diesen kodierten string.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie den
@GZIP
Anmerkung zu Ihrem interface. Hier ist die Dokumentation. Wenn ich mich richtig erinnere müssen SieGZIPOutInterceptor
erklärte im spring-config.Alternativ können Sie die GZIPOutInterceptor zu Ihrem Endpunkt manuell.
end.getFeatures().add(config.gzipFeature());
dies fügt die GZIPOutInterceptor, um den Endpunkt manuell, bereits.