users@jersey.java.net

[Jersey] Re: cache headers on a 404?

From: Sam Perman <sam_at_permans.com>
Date: Thu, 31 May 2012 10:35:06 -0400

Unfortunately, a ContainerResponseFilter won't work because the call to
HttpServletResponse.sendError (see WebComponent line 278) happens after all
the filters have been invoked... meaning jetty will still replace my
Cache-Control headers.

I'd like to be able to set "useSetStatusOn404" to true but I can't figure
out a way to actually do that (I'm using a servlet config, not a filter
config).

sam

On Wed, May 30, 2012 at 4:29 AM, Pavel Bucek <pavel.bucek_at_oracle.com> wrote:

> On 5/29/12 5:26 PM, Sam Perman wrote:
>
> It does look like its a jetty thing. We call Responses.notFound() which
> ultimately calls HttpServletResponse.sendError() which has the side effect
> of overriding the cache control header.
>
> if is the code which overrides cache control header in
> HttpServletResponse, it is generally "container thing" just because Jersey
> cannot really control what is done with the response after passing it to
> servlet container.
>
>
> Jetty has a way to configure this globally for all errors (
> http://jira.codehaus.org/browse/JETTY-1177 ) but we only really want to
> configure this for 404
>
> Is there a hook somewhere in jersey that would get called after we build
> our response but before we relinquish control back to jetty?
>
>
> ContainerResponseFilter for example. Or you can extend Jersey
> ServletContainer and control basically everything..
>
> Pavel
>
>
> thanks
> sam
>
> On Fri, May 25, 2012 at 5:30 PM, Sam Perman <sam_at_permans.com> wrote:
>
>> We're using jetty. I'll check that log to confirm.
>>
>> thanks
>> Sam
>>
>> On Friday, May 25, 2012 at 5:20 PM, Pavel Bucek wrote:
>>
>> I don't think this is added by Jersey, I usually tend to blame the
>> container for this. Which one are you using?
>>
>> You can also verify this statement by adding ContainerResponse Logging
>> filter and check logs for that header, see
>>
>> http://jersey.java.net/nonav/apidocs/latest/jersey/com/sun/jersey/api/container/filter/package-summary.html
>>
>> Regards,
>> Pavel
>>
>> On 5/25/12 10:51 PM, Sam Perman wrote:
>>
>> Hi
>>
>> We want to be able to cache the 404 responses from our server no
>> matter what cache controls we set on the response, the headers that
>> are returned are always set to no cache (I think because
>> reseponse.sendError ultimately resets the cache control headers)
>>
>> Any ideas?
>>
>> thanks
>> sam
>>
>>
>>
>
>