You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@camel.apache.org by Binu Surendran <bi...@ibsplc.com> on 2015/06/19 15:10:02 UTC

Re: Soap and gzip compression

Hi,

You are correct, the below cxf feature enable the use of gzip to compress
the messages on the wire. 

	/<cxf:features>
              <bean
class="org.apache.cxf.transport.common.gzip.GZIPFeature"/>
        </cxf:features>/


Adding above cxf feature to cxf endpoint works fine for me, I am using camel
2.13.0 and cxf-api version 2.7.10. If you enable logging in cxf using
org.apache.cxf.interceptor.LoggingOutInterceptor then you can verify the
value of Accept-Encoding header, find the sample log below;

19Jun,2015 17:15:08,386  INFO
org.apache.cxf.services.XmlSelect.XmlSelectSoap.XmlSelectSoap : - Outbound
Message
---------------------------
ID: 2
Address: https://abc.webservice,com
Encoding: UTF-8
Http-Method: POST
Content-Type: text/xml
Headers: {Accept=[*/*], Accept-Encoding=[*gzip*;q=1.0, identity; q=0.5,
*;q=0], .......
Payload: <soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"

=================================================================

But you cannot verify the Content-Encoding header from response, because the
GZIPInInterceptor class will remove the Content-Encoding (one of the
protocol headers) header once the response is uncompressed. Eventhough the
webservice sent the compressed message with Content-Encoding=gzip, the
camel/cxf will not hve this header in place. You can verify this by browsing
org.apache.cxf.transport.common.gzip.GZIPInInterceptor class from
cxf-rt-core library.

Hope this calrifies your query.

Thanks,
Binu




--
View this message in context: http://camel.465427.n5.nabble.com/Soap-and-gzip-compression-tp5722722p5768399.html
Sent from the Camel Development mailing list archive at Nabble.com.