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í?

¿Fue útil?

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
scroll top