users@jersey.java.net

Re: [Jersey] WCF to Jersey interop, compression

From: Paul Sandoz <Paul.Sandoz_at_Sun.COM>
Date: Thu, 09 Jul 2009 15:02:46 +0200

Hi,

Are you still doing ?

     threadSelector.setCompression("on");
     threadSelector.setCompressableMimeTypes("application/fastinfoset");
     threadSelector.setCompressionMinSize(0);

In addition to including the Jersye filter? i am wondering if Grizzly
is decompressing, then Jersey is attempting to decompress after.

Paul.

On Jul 9, 2009, at 1:50 PM, Arman Djusupov wrote:

> Hello Paul,
>
> Thanks a lot for the link. It worked fine at least for response
> compression :-)
> But when I try to POST a compressed HTTP message to a Jersey
> resource, I get an exception on the Jersey side. This is the header
> of the request that fails to decompress:
>
> POST /tickhistory/ HTTP/1.1
> VsDebuggerCausalityData:
> uIDPo9PKOzKg7z1DuyaISwKJUpgAAAAAdxwoWxKXH0OxvewI3bswnOraGVvVFg5NvTB+/
> pg8Cs8ACQAA
> Accept-Encoding: gzip
> Accept: application/fastinfoset,application/xml; charset=utf-8
> Content-Encoding: gzip
> Content-Type: application/fastinfoset
> Host: 192.168.1.22:9998
> Content-Length: 3289
> Expect: 100-continue
>
> The body seems to be of valid size. Also, when I save it into a file
> it can be decompressed and the FI content can also can be decoded. I
> have attached the message body to this email.
>
> The exception that I get on Grizzly is EOFException.
> SEVERE: service exception:
> javax.servlet.ServletException:
> com.sun.jersey.api.container.ContainerException: java.io.EOFException
> at
> com
> .sun
> .jersey
> .spi
> .container.servlet.ServletContainer.service(ServletContainer.java:346)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
> at
> com
> .sun
> .grizzly.http.servlet.FilterChainImpl.doFilter(FilterChainImpl.java:
> 141)
> at
> com
> .sun.grizzly.http.servlet.ServletAdapter.service(ServletAdapter.java:
> 168)
> at
> com
> .sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:
> 146)
> at
> com
> .sun
> .grizzly
> .http.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:
> 620)
> at
> com
> .sun
> .grizzly
> .http.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:551)
> at
> com
> .sun
> .grizzly.http.DefaultProcessorTask.process(DefaultProcessorTask.java:
> 800)
> at
> com
> .sun
> .grizzly
> .http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:152)
> at
> com
> .sun
> .grizzly
> .DefaultProtocolChain
> .executeProtocolFilter(DefaultProtocolChain.java:137)
> at
> com
> .sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:
> 104)
> at
> com
> .sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:
> 90)
> at com.sun.grizzly.http.SelectorThread
> $1.execute(SelectorThread.java:648)
> at
> com
> .sun
> .grizzly
> .ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:67)
> at
> com
> .sun
> .grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:56)
> at
> com.sun.grizzly.util.WorkerThreadImpl.run(WorkerThreadImpl.java:169)
> Caused by: com.sun.jersey.api.container.ContainerException:
> java.io.EOFException
> at
> com
> .sun
> .jersey
> .api
> .container
> .filter
> .GZIPContentEncodingFilter.filter(GZIPContentEncodingFilter.java:73)
> at
> com
> .sun
> .jersey
> .impl
> .application
> .WebApplicationImpl.handleRequest(WebApplicationImpl.java:720)
> at
> com
> .sun
> .jersey
> .impl
> .application
> .WebApplicationImpl.handleRequest(WebApplicationImpl.java:692)
> at
> com
> .sun
> .jersey
> .spi
> .container.servlet.ServletContainer.service(ServletContainer.java:344)
> ... 15 more
> Caused by: java.io.EOFException
> at
> java.util.zip.GZIPInputStream.readUByte(GZIPInputStream.java:207)
> at
> java.util.zip.GZIPInputStream.readUShort(GZIPInputStream.java:197)
> at
> java.util.zip.GZIPInputStream.readHeader(GZIPInputStream.java:136)
> at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:58)
> at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:68)
> at
> com
> .sun
> .jersey
> .api
> .container
> .filter
> .GZIPContentEncodingFilter.filter(GZIPContentEncodingFilter.java:70)
>
> With best regards,
> Arman
>
>
> Paul Sandoz wrote:
>> Hi Arman,
>> I am cross posting to the Grizzly users list, as it might a config
>> issue with the compression set up, or it might be that the
>> compression set up is for transport encoding rather than content
>> encoding.
>> Jersey also has a content encoding filter:
>> https://jersey.dev.java.net/nonav/apidocs/1.1.0-ea/jersey/com/sun/jersey/api/container/filter/GZIPContentEncodingFilter.html
>> Paul.
>> On Jul 7, 2009, at 11:21 AM, Arman Djusupov wrote:
>>> Hello,
>>>
>>> I am testing REST interop between WCF and Jersey + standalone
>>> Grizzly server. Up to now everything works fine, except of
>>> compression which for some reason is not being applied despite
>>> having enabled it.
>>>
>>> I have initialized the standalone Grizzly in the following manner:
>>>
>>> System.out.println("Starting grizzly...");
>>> SelectorThread threadSelector =
>>> GrizzlyWebContainerFactory.create(
>>> baseUri, initParams);
>>> threadSelector.setCompression("on");
>>> threadSelector.setCompressableMimeTypes("application/
>>> fastinfoset");
>>> threadSelector.setCompressionMinSize(0);
>>>
>>> System.out.println(String.format(
>>> "Jersey app started with WADL available at
>>> %sapplication.wadl\n” + “Try out %shelloworld\nHit enter to stop
>>> it...", baseUri, baseUri));
>>> System.in.read();
>>>
>>> The client sends a request with the following header:
>>>
>>> GET /tickhistory/?count=1000 HTTP/1.1
>>> VsDebuggerCausalityData:
>>> uIDPo8NPV7XwO0VGi6Vqcn5L7qcAAAAAHgkpNDHfjEGQyOWxx
>>> +Y5qyGawiJz7CdKr295EfxJus8ACQAA
>>> Accept-Encoding: gzip,deflate
>>> Accept: application/fastinfoset,application/xml; charset=utf-8
>>> Content-Type: application/fastinfoset
>>> Host: 192.168.1.22:9998
>>>
>>> Grizzly replies using "application/fastinfoset" as it should (I am
>>> using Fast Infoset as message encoding) but it does not compress
>>> the traffic:
>>>
>>> HTTP/1.1 200 OK
>>> server: grizzly/1.7
>>> Content-Type: application/fastinfoset
>>> Date: Fri, 03 Jul 2009 15:05:37 GMT
>>> Content-Length: 7961
>>>
>>> Do you have any idea how can I enable compression? Or is it not
>>> supported yet?
>>>
>>> With best regards,
>>> Arman
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
>>> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
>> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>
> <
> request
> .gz
> >---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
> For additional commands, e-mail: users-help_at_jersey.dev.java.net