如何为SOAP响应启用GZIP压缩?

时间:2014-11-11 09:41:33

标签: java spring web-services soap cxf

我使用SpringCXF创建了一个简单的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压缩响应?

1 个答案:

答案 0 :(得分:4)

您需要在界面中添加@GZIP注释。 Here's the documentation。如果我没记错的话,你需要在spring config中声明GZIPOutInterceptor

或者,您可以手动将GZIPOutInterceptor添加到终端。