2015-01-30 1:29 GMT+03:00 Jeff Kohut <jeff.ko...@gmail.com>:
> My first post to Tomcat list, pardon me if I make any mistakes,
>
> Any help you can provide would be greatly appreciated.
>
> I have a Tomcat Server (V 7.0.54) running under Windows 2008 R2 With
> Service Pack 1 (and up to date on Security as well as OS patches). That
> server is running a vendor supplied group of applications via .war file as
> normal. to receive Soap/XML data from remote computer and process and
> return data back to calling application.
>
> The remote calling application hosted by IBM Websphere Application Server
> (running Axis2 jars) that is sending XML Soap data via a Post to the Tomcat
> Web server on port 8080/8443. If the amount of data is relatively small
> (i.e. 14 K) we have no problem receiving the data as Websphere is using
> Length Http 1.1 header and Tomcat sends the data to the application with no
> issue. However as the data gets larger, Websphere begins using Chunked
> Transfer Encoding and apparently Tomcat does not seem to like this as it
> returns Http 411 "Length Required" message. I have searched Tomcat site,
> and Tomcat indicates that is support Chunked encoding (part of the MUST
> supported parts of the HTTP 1.1 RFC standard.
>
> My connector in Tomcat is configured:
>
>     <Connector port="8080" protocol="HTTP/1.1"
>                connectionTimeout="20000"
>                redirectPort="8443" />
>
> I have tried forcing BIO,NIO, and APR with no luck to see if the
> implementations might handle Chunked Encoding differently.
>
> I also have a more complicated 8443 SSL port that also works, until Chunked
> encoding is used, and then it also responds with 411 Length Required error.
>
> I am able to replicate the problem by using SoapUI to send the same Soap
> formatted XML Data. It works fine sending all sizes of data UNTIL I enable
> Chunked Encoding Threshold which is smaller than the XML payload size
> (threshold means to not Chunk until data is larger than Threshold), When
> Chunking starts, Tomcat responds with 411 Length required.
>
> To finally work around this issue, I have put an Apache 2.4 server in front
> of Tomcat, and have enable the mod_proxy_http, and am using an Apache
> SetEnv variable setting of : SetEnv proxy-sendcl 1
> The proxy-sendcl tells Apache to send the "Length" , and then Tomcat and
> application are happy with the data (i.e. no 411 method sent back).
>
> As I stated above, Tomcat indicates it supports Chunked Encoding on it's
> site, but it acts as if it is not happy with it.
>
> We have looked at packet traces and it appears that the Chunks are
> formatted correctly (we are getting an initial Chunk(s) and then the last
> Chunk is zero with Cr Lf following it as it seems to indicate in RFC.
>
> Has anyone else seen this issue and is there any way to alter the Tomcat
> behavior with Chunked encoded data?
>
> We found an IBM Websphere article that seems to admit to the problem, but
> they indicate that they should not have to offer a method to disable
> chunked encoding as some who seem to have encountered this problem suggest.
> IBM states that since Http 1.1 mandates support of Chunked Encoding, then
> HTTP 1.1. servers should support Chunked encoding correctly. FYI, I took
> the time to recreate the problem in C# code, and as soon as I turn on
> Chunked Encoding, the 411 errors is present from that application also when
> sending data to Tomcat Server.


Tomcat 7 does not send status code 411 (a constant is declared in
HttpServletResponse class but it is never used). That response code is
coming from a web application that you are using.

You may try debugging.
http://wiki.apache.org/tomcat/FAQ/Developing#Debugging
with a breakpoint on sendError(int,String), setStatus(int) methods of
org.apache.catalina.connector.Response.

It should be possible to implement a javax.servlet.Filter to cache a
request and feed it to the web application for further processing, but
it would be better to fix the web application itself.

Best regards,
Konstantin Kolinko

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to