I have been doing some research on the topic of how to enable Gzip compression between 
Axis and a Microsoft .NET Framework client.

It appears the best way to go about doing this is to add a http header along with the 
request from the client.  The following article describes how to add the header and 
then decompress the response stream.  It requires the use of an open source Zip 
library on the client.

Retrieving Data from Web Services using Standard HTTP 1.1 Compression by Jacek Chmiel 
(http://www.dotnetjunkies.com/tutorials.aspx?tutorialid=304)

I then attempted to use a standard Java Servlet 2.3 Filter to compress data sent from 
the server.  My compression filter came from the code in the following article:

Filter code with Servlet 2.3 by Jason Hunter 
(http://www.servlets.com/soapbox/filters.html)

This appears to be the most straightforward way to add compression capabilities to 
Axis.  By adding a request header, I state that my client application can accept 
compressed or uncompressed data.  Therefore, I do not loose interoperability with 
other implementations.  The compression filter checks for the header and then 
compresses data generated by Axis.

I think this design is simple and elegant.  Unfortunately, it does not work.  Does 
anyone have any ideas?  Does anyone know of a Gzip compression library for .NET that 
has been tested for compatibility with the Java implementation?

Any thoughts appreciated.
Rick






Reply via email to