On Tue, 22 Mar 2005 13:39:55 -0500, Eric Butler <[EMAIL PROTECTED]> wrote:
> First of all, thanks to all the developers and users that have
> contributed to Tomcat.  It's quite an amazing piece of software.
> 
> I'll start by telling you why I am trying to do this, what approaches I
> have taken in my attempts to do it, and then I'll ask for some
> suggestions on other approaches that may work better.
> 
> *Why*
> We have an MS .Net (1.1) client talking SOAP over HTTP to Webservices
> built on Sun's JWSDP 1.3 (via Tomcat).  There is a pretty strict
> requirement to compress responses as they are usually 200-1000KB.  There
> is a 'lack of feature' in the MS .Net Webservice client implementation
> in that it is not possible to decompress the HTTP response when there is
> a server response code of 500.  The SOAP spec requires that SOAP Faults
> on the server set the response code to 500, and thus we are unable to
> process any SOAP faults on the client.  In all other cases we are cool
> in decompressing the responses.  Since there don't exist any options for
> us on the client we are limited to the server for solutions.
> 
> *Approaches attempted and failed*
> -Servlet filters - a servlet filter only has access to the
> HttpServletRequest and the HttpServletResponse and neither of these is
> aware of the response status code.

Wrap the response object. A servlet like the compression filter has to
wrap anyway to be able to work.

> -Coyote's compression option with a numerical value higher than all Soap
> Fault sizes - it seems that the content-length of the response is always
> set to -1, either by Sun's JWSDP or because the HTTP response is
> chunked.  I'm not sure which is the cause, but when the content-length
> is -1, the response is always compressed.
> -We tried an endless list of things on the .Net client in an attempt to
> decompress the SOAP Fault responses to no avail.
> 
> *Approaches attempted and suceeded*
> -Modifying org.apache.coyote.http11.Http11Processor.class by adding this
> immediately inside of isCompressible()
>     if ( response.getStatus() == 500 ) {
>          return false;
>     }
> I know this isn't pretty but it works.  This will be acceptable if I
> can't find a better option, but it will require that each time we
> upgrade Tomcat, we'll need to compile a custom Http11Processor.  I'll
> also need to check that we aren't violating the Apache License.

It obviously does not violate the Apache license.

-- 
xxxxxxxxxxxxxxxxxxxxxxxxx
R�my Maucherat
Developer & Consultant
JBoss Group (Europe) S�RL
xxxxxxxxxxxxxxxxxxxxxxxxx

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to