Hi there,

I'm trying to make mod_deflate work to decompress zipped incoming soap
requests.

The system is something like this:
webservice client --> httpd -->mod_jk --> Webservice exposed by Jboss
server.

httpd version is 2.2.3

Since the SOAP messages are somehow big, I want the webservice client to
send zipped soap message. And the HTTPD should de-compress it with
mod_deflate and then pass the de-compressed soap requests to the application
server via mod-jk.

I added the following config into httpd.conf:
#---------------------------------
SetOutputFilter DEFLATE
SetInputFilter DEFLATE

DeflateFilterNote input
DeflateFilterNote output
DeflateFilterNote ratio
LogFormat '%h %t "%r" %{output}n/%{input}n (%{ratio}n%%)' deflate

CustomLog logs/deflate_log.log deflate
#---------------------------------

I expect that httpd should decompress all the incoming http request with
"Content-Encoding=gzip" with this configuration. But when I check the debug
logging of mod_jk, I found that the requests passed to mod_jk were NOT
DECOMPRESSED.

Here is the access log of an incoming request (LogFormat: LogFormat "%h %l
%u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"
\"%{Content-Length}i\" \"%{Content-Type}i\" \"%{Content-Encoding}i\""
combined):

172.18.50.17 - - [30/Nov/2010:20:31:58 +0800] "POST /ws/TestService
HTTP/1.1" 400 - "-" "Jakarta Commons-HttpClient/3.1" "806"
"text/xml;charset=UTF-8" "gzip"

We can see that the incoming message is a gzipped message.


and in deflate_log.log:
172.18.50.17 [30/Nov/2010:20:31:58 +0800] "POST /ws/TestService HTTP/1.1"
-/- (-%)

172.18.50.17 [30/Nov/2010:20:46:51 +0800] "GET / HTTP/1.1" -/- (43%)

According to the first line it seems that the mod_deflate does NOT work for
incoming requests(?), since input/output/ratio are all empty.
According to the second line it seems that the mod_defalte does work for
outcoming response...because at least ratio is not empty...(so that we can
be sure that mod_deflate is loaded properly)

I googled a lot and went over mod_deflate source code but found no hints.

Is there anyone has make some similiar system work?  or is there any further
config I should add to make deflate work for the incoming requests? and is
there further debugging methods? (I put LogLevel to debug, but there is no
related logs..)

Thanks!

Reply via email to