启用GZIP是GWT应用程序

时间:2014-02-20 08:28:20

标签: java java-ee gwt gzip

我正在进行有效负载优化。

我在这里读到compress your responses in to GZIP

所以我Configuring the CompressionFilter

并配置以下过滤器来压缩我对gzip的响应,

<filter>  
    <filter-name>compressionFilter</filter-name>  
    <filter-class>com.googlecode.webutilities.filters.CompressionFilter</filter-class>  
    <init-param>   
       <param-name>compressionThreshold</param-name>  
       <param-value>1024</param-value>  
    </init-param>  
    <init-param>   
       <param-name>ignoreMimes</param-name>  
       <param-value>images/*,video/*, multipart/x-gzip</param-value>
    </init-param>  

 </filter>  
 <filter-mapping>  
    <filter-name>compressionFilter</filter-name>  
    <url-pattern>/*</url-pattern>  
 </filter-mapping>  

它适用于js,html,css等文件。但是对于Ajax响应,我无法使其工作。

我正在使用GWT RPC调用,默认情况下是一个gzip响应,我的假设是它正在尝试再次gzip,这已经是一个gzip响应并给了我异常。

StackOverFlow甚至不允许粘贴StackTrace。所以添加图片。

enter image description here

对此有何帮助?我缺少什么?

1 个答案:

答案 0 :(得分:0)

这不是您的问题的解决方案,但它可以帮助解决基本问题(为您的应用程序实现gzip压缩)有点不同......

如果可能的话,我总是使用Apache(或nginx)作为前端服务器。关于gzip压缩Apache应该更快(gzip的纯C实现)。请注意,除了gzipping之外,这个设置还提供了更好的功能:

  • 设置正确的缓存标头(例如,* .cache.html文件)
  • 如果Servlet容器已关闭,则发送错误页面
  • 通过前端服务器缓存/交付静态资源来减少Servlet容器要处理的请求数
  • 您甚至可以使用预先压缩的静态资源版本来反复压缩相同的内容(https://code.google.com/p/zopfli/可以帮助减少预先压缩的资源的大小)

肯定还有更多优势,但我不是Ops人。