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

我使用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添加到端点.

上一篇:java – 用于字节的Spring REST模板


下一篇:java-Eclipse Web服务浏览器如何工作?