J'ai le résultat suivant d'une méthode Jersey @GET. Cela fonctionne, bien mais inclut toujours l'en-tête No-cache. Je voudrais permettre au client de mettre en cache ces données car elles changent rarement.Paramétrer Jersey pour autoriser la mise en cache?
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?
Utilisation de Tomcat6. Je vais jeter un coup d'oeil à ça, merci! Je deviens fou ici! –
En utilisant également Spring, je ne sais pas si cela compte. Je ne vois rien dans un conteneur qui permettrait de le faire. Toujours en regardant bien. –
Les en-têtes de cache peuvent également être définis au printemps. Je pense que le "no-cache" n'est généralement pas défini par défaut. Essayez de frapper une ressource statique pour exclure Tomcat en premier. Ensuite, en fonction de la complexité de votre application, décollez-la une couche à la fois, par ex. 1) câbler une servlet simple ou jsp dans Spring et vérifier l'en-tête de contrôle de cache; 2) désactiver temporairement tous les filtres; etc. – marklai