3

ジャージーの@GETメソッドから次のように返されます。正常に動作しますが、常にNo-cacheヘッダーが含まれます。このデータはめったに変更されないため、クライアントがこのデータをキャッシュできるようにしたいと思います。

ResponseBuilder rb = Response.ok(c);
    CacheControl cc = new CacheControl();
    cc.setMaxAge(60);
    cc.setNoCache(false);
    return rb.cacheControl(cc).build();

応答は常に次のとおりです。

 Server Apache-Coyote/1.1
 Pragma No-cache
 Cache-Control  no-cache, no-transform, max-age=60
 Expires    Wed, 31 Dec 1969 19:00:00 EST
 Content-Type   application/xml
 Content-Length 291
 Date   Tue, 16 Feb 2010 01:54:02 GMT

それは私がここで間違っているのですか?

4

2 に答える 2

5

これは、BASIC 認証がオンになっていることが原因でした。

コンテキストでこれを指定すると、問題が修正されます。

<Valve className="org.apache.catalina.authenticator.BasicAuthenticator"
       disableProxyCaching="false" />

これが他の誰かを助けることを願っています。

于 2010-02-24T20:39:23.233 に答える
0

あなたのコードは問題ないようです。

どのコンテナを使用していますか?キャッシュが無効になっていないことを確認してください。また、ダウンストリームの応答ハンドラーまたはフィルターが no-cache ディレクティブを設定していないことを確認します。

于 2010-02-16T02:20:21.437 に答える