Web サービスのジャージー実装があります。要件ごとの応答は、gzip で圧縮する必要があります。
クライアント側には、gzip をオンにする次のブートストラップ コードが含まれています。
Client retval = Client.create();
retval.addFilter(
new com.sun.jersey.api.client.filter.GZIPContentEncodingFilter());
Tomcat web.xml の場合、gzip は次のように構成されます。
<servlet>
<display-name>JAX-RS REST Servlet</display-name>
<servlet-name>JAX-RS REST Servlet</servlet-name>
<servlet-class>
com.sun.jersey.spi.container.servlet.ServletContainer
</servlet-class>
<load-on-startup>1</load-on-startup>
<init-param>
<param-name>com.sun.jersey.spi.container.ContainerRequestFilters</param-name>
<param-value>com.sun.jersey.api.container.filter.GZIPContentEncodingFilter</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.spi.container.ContainerResponseFilters</param-name>
<param-value>com.sun.jersey.api.container.filter.GZIPContentEncodingFilter</param-value>
</init-param>
そして、すべてがうまくいきます!
しかし、サービスを呼び出す単体テストを作成する必要があります。私は JerseyTest をベースとして使用していますが、実際には、グリズリーが明示的な宣言なしで gzip を正しく処理しないことが示されました。同様の問題でそれを切り替える方法のコードスニペットを見つけましたが、それをJerseyTestと組み合わせる方法がわかりません。
前もって感謝します