Hi Anthony
On 05/10/12 11:11, Muller, Anthony wrote:
Hello Sergey,

I feel I miss something about GZIP support.

I added @GZIP to our root resource.

So, in my usecase that I have a method in my RESTful ws that returned a JAXB object (so, the method 
can produce "application/xml" and "application/json").

How the client can ask a XML or JSON in GZIP format?

If it sends:
        Accept-Encoding: gzip,deflate
        Accept: */*
It works.

But if client sends:
        Accept-Encoding: gzip,deflate
        Accept: application/json
I received a "406 Not Accepted"...

Does it work if drop @GZIP ? I wonder if you have @Produces that also allows for application/json ?

Cheers, Sergey


How to do?

Regards,
Anthony




-----Original Message-----
From: Sergey Beryozkin [mailto:[email protected]]
Sent: jeudi 20 septembre 2012 13:40
To: Muller, Anthony
Cc: [email protected]
Subject: Re: JAX-RS - ZIP compression ?

Hi
On 20/09/12 12:23, Muller, Anthony wrote:
->   If GZIP is acceptable then the simples option is to add
->   @org.apache.cxf.annotation.GZIP to a root resource class.

Just to be sure, in this case, after adding this annotation:
- all subresources class will be configured as well or I have to add this 
annotation too?

Having it at a root resource class level should do,

Alternatively, register
org.apache.cxf.transport.common.gzip.GZIPFeature. Actually, it is not
possible to register features with CXFNonSpingJaxrsServlet, so the same
can be achieved by registering
org.apache.cxf.transport.common.gzip.GZIPOutInterceptor (via
jaxrs.outInterceptors parameter) and if needed -
org.apache.cxf.transport.common.gzip.GZIPInInterceptor

- must I add a "application/x-gzip" MIME type on JAX-RS methods?

it depends on what the client expectations are, if clients do expect
"application/x-gzip" then you can add it to a root resource class level...

GZIPOutInterceptor will only set 'Content-Encoding' to "gzip" or "x-gzip"

Cheers, Sergey

Regards,
Anthony

-----Original Message-----
From: Muller, Anthony [mailto:[email protected]]
Sent: jeudi 20 septembre 2012 13:09
To: Sergey Beryozkin; [email protected]
Subject: RE: JAX-RS - ZIP compression ?

Thanks Sergey, I will look at this asap :)

Regards,
Anthony

PS: about this point, we choose to have an interceptor mechanism at application 
level to handle lock/unlock on resources when necessary. Thanks!

-----Original Message-----
From: Sergey Beryozkin [mailto:[email protected]]
Sent: mardi 18 septembre 2012 22:57
To: [email protected]
Cc: Muller, Anthony
Subject: Re: JAX-RS - ZIP compression ?

Hi Anthony
On 18/09/12 21:36, Muller, Anthony wrote:
Hello Sergey,

Is there an (easy) way to accept/activate ZIP compression of REST responses?

If GZIP is acceptable then the simples option is to add
@org.apache.cxf.annotation.GZIP to a root resource class.

We also have a utility for supporting Deflate [1] encoding which I guess
is somewhat different to GZIP:

http://docs.oracle.com/javase/7/docs/api/java/util/zip/Deflater.html

The actual utility is in the rs xml security module - but if it were of
interest then we'd make it available at the common rt/core level, let us
know...

Cheers, Sergey

Thanks,
Anthony


P.S By the way, recall our conversation about making sure that a custom
ResponseHandler is invoked even if the exception is thrown from the
server application code, I can't seem to find that thread, but the thing
which I forgot to mention last time was that providing a custom
ExceptionMapper for Throwable would guarantee a Response would be avail
for response filters no matter what



Reply via email to