Réglage de Jersey pour permettre la mise en cache?
Question
Je donne les résultats suivants retour d'une méthode Jersey @GET. Il fonctionne, très bien, mais comprend toujours l'en-tête no-cache. Je voudrais permettre au client de mettre en cache ces données car il change rarement.
ResponseBuilder rb = Response.ok(c);
CacheControl cc = new CacheControl();
cc.setMaxAge(60);
cc.setNoCache(false);
return rb.cacheControl(cc).build();
La réponse est toujours:
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
Ce que je fais mal ici?
La solution
Ceci est dû en ayant BASIC auth activée.
Spécifier dans le contexte corrigera le problème:
<Valve className="org.apache.catalina.authenticator.BasicAuthenticator"
disableProxyCaching="false" />
Espérons que cela aide quelqu'un d'autre.
Autres conseils
Votre code semble correct.
Quel contenant utilisez-vous? Assurez-vous que le cache est pas désactivé sur elle. Vérifiez également les gestionnaires de réponse en aval ou les filtres ne sont pas le réglage de la directive no-cache.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow