Configuración Jersey para permitir el almacenamiento en caché?
Pregunta
Tengo el siguiente de regresar de un método Jersey @GET. Funciona, bien, pero siempre incluye el encabezado No-cache. Me gustaría que el cliente pueda almacenar en caché estos datos, ya que rara vez cambia.
ResponseBuilder rb = Response.ok(c);
CacheControl cc = new CacheControl();
cc.setMaxAge(60);
cc.setNoCache(false);
return rb.cacheControl(cc).build();
La respuesta siempre es:
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
Que estoy haciendo mal aquí?
Solución
Esto fue causado por tener auth BASIC activada.
Especificación de esto en el contexto corregirá el problema:
<Valve className="org.apache.catalina.authenticator.BasicAuthenticator"
disableProxyCaching="false" />
Espero que esto ayude a alguien más ahí fuera.
Otros consejos
Su código se ve bien.
¿Qué contenedor está usando? Asegúrese de que la memoria caché no está deshabilitado en él. verificar también los manipuladores de respuesta de aguas abajo o filtros no están definiendo la directiva no-cache.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow