我使用Spring和CXF创建了一个简单的soap Webservice.我现在正在尝试为xml请求启用GZIP压缩.
以下内容将接受压缩的请求,但将以未压缩的方式响应.为什么?
@Component
@WebService
public class SoapService {
}
@Autowired
private SpringBus bus;
EndpointImpl end = new EndpointImpl(bus, new SoapService());
end.getFeatures().add(config.gzipFeature());
ep.publish("/SoapService");
对此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], ...}
响应(空标题!):
Content-Type: text/xml
Headers:
Payload: ...
为什么不使用gzip压缩响应?
解决方法:
您需要将@GZIP批注添加到您的界面. Here’s the documentation.如果我没记错的话,您需要在spring config中声明GZIPOutInterceptor.
或者,您可以手动将GZIPOutInterceptor添加到端点.