2017-09-25 5 views
0

RESTEasyのドキュメントでは、サーバーエンドポイントに「@GZIP」アノテーションを付けることに加えて、ランタイム環境のクラスパスで「javax.ws.rs.ext.Providers」というファイルを使用できるようにする必要があります。このファイルには、クラス名 "org.jboss.resteasy.plugins.interceptors.encoding.GZIPEncodingInterceptor"が含まれています。RESTEasy GZIPサポートを有効にしますか?

私は上記のすべてを行っていますが、レスポンス "Content-Encoding"ヘッダーが "gzip"(つまり応答本体がプレーンテキスト/ jsonであっても、サーバーから戻ってくる応答は圧縮されません。ヘッダーのことにもかかわらず)。

javax.ws.rs.ext.Providersファイルは、.warのWEB-INF/classesフォルダとTomcatにデプロイされたときのappフォルダにありますが、RESTEasyは無視しています。

私は行方不明のものがありますか?誰もがこの仕事をしていますか?

EDIT:さて、私はRESTEasyが完全なパス "META-INF/services/javax.ws.rs.ext.Providers"を実際に探していることを発見しました。リソースフォルダ。そして、はい、それは混乱しています。すでに.warアーカイブにMETA-INFフォルダがあります。ただし、 "services"サブフォルダと "javax.ws.rs.ext.Providers"ファイルをMETA-INFフォルダに入れることは機能しません。一口。

+0

パケットスニッファを使用して圧縮されていないことを確認しましたか? – Namphibian

+0

はい、TCPMonを使用してトラフィックを調べ、HTTPヘッダーがgzipであると主張しているにもかかわらず、トラフィックが圧縮されていないJSONであると判断しました。 –

答えて

2

私はそれが働いた&私はこれが同じ解決に役立つことを願っています。そのトリックはWEB-INF/classesの中にこれを置くことです。私がやったことの場所にjavax.ws.rs.ext.Providersを持っていることでした。/WEB-INF /クラス/ META-INF /サービス &それが仕事を始め出来上がり。

この理由は、このファイルを検索しようとしているコードにあるクラスローダーの参照と関係があるためです。私は風袋​​を使用しています。しかし、JBossやその他のアプリケーション/ Webサーバーを使用している場合、クラスローディングのメカニズムはコンテナの実装に応じて異なる場合があります。だからあなたのサーバーに最適な場所を把握してください。

関連する問題