Thanks a lot for the patch. Will test it out and let you know if it works for me.
Best Regards, Madhav Willem.Jiang wrote: > > The patch is here[1] > > You can verify the patch by using the latest Camel 2.6-SNAPSHOT, if you > are still using Camel 2.5.0, you can write a customer > CXFHeaderFilterStrategy based on my patch, and configure it into you > CXFEndpoint. > > [1]http://svn.apache.org/viewvc?rev=1032983&view=rev > > > > On 11/10/10 7:16 PM, unmarshall wrote: >> >> >> Hi Willem, >> >> What is the quick fix that you have made? >> It was not clear of whether you used HttpHeaderFilterStrategy or >> CxfHeaderFilterStrategy? >> >> And yes the default threshold of 4K set by CXF is fine by me and i >> understood the reason for it being set when i saw that. However my >> concern >> was that once the payload is below that threshold then CXF should not >> blindly turn off chunking and not bother about removing the header. This >> will cause the request to fail at the servlet container side. >> >> Best Regards, >> Madhav >> >> >> Willem.Jiang wrote: >>> >>>> >>>> Yes, I just checked the code, even the AllowChunking default value is >>>> ture, because of the ChunkingThreshold is 4096. CXF HttpConduit will >>>> not >>>> check the request. >>>> >>>> The problem is surely in CXF but i was hoping that the CXF-Camel >>>> component >>>> can re-use HttpHeaderFilterStrategy to filter out common headers. >>> >>>> Yes, I just commit a quick fix for it from camel-cxf side by applying >>>> the same header filter strategy of Http. >>>> camel-cxf should filter the Generic Message header[1] by default >>>> [1]http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.5 >>>> >>>> This solution looks more like a hack. Ideally CXF should take care of >>>> checking for certain headers and then club it together with its logic >>>> for >>>> automatically enabling chunking beyond a certain threshold. >>>> >>> After my second thought, I think we just need to fix your issue from >>> camel side, CXF HttpConduit should to take care about the >>> "transfer-encoding" as it just need to care about point to point >>> transport. >>> >>> CXF choices the 4K as the ChunkingThreshold is to get better >>> performance. I think this is OK for me. >>> >>>> >>>> Best Regards, >>>> Madhav >>>> >>>> >>>> >>>> >>>> >>>> Willem.Jiang wrote: >>>>> >>>>> Hi Madhav, >>>>> >>>>> Can I have a look at your route? >>>>> I think the Transfer-Encoding = chunked value can be filtered by a >>>>> customer CxfHeaderFilterStrategy. >>>>> >>>>> How about just add this configuration ? >>>>> <http-conf:conduit name="*.http-conduit"> >>>>> <http-conf:client AllowChunking="true"/> >>>>> </http-conf:conduit> >>>>> >>>>> Now I need to check the CXF code to see if I can let the http conduit >>>>> just send the chucked request if the protocol header is >>>>> "Transfer-Encoding = chunked". >>>>> >>>>> On 11/4/10 12:33 AM, unmarshall wrote: >>>>>> >>>>>> Hi All, >>>>>> >>>>>> I got this working. The problem is that CXF is not smart enough to >>>>>> determine >>>>>> that there is a Transfer-Encoding = chunked being set by the server >>>>>> (in >>>>>> my >>>>>> case it was tomcat). It defines a threshold value below which it will >>>>>> not >>>>>> chunk the body and only if the the size is above the threshold it >>>>>> will >>>>>> chunk >>>>>> it. >>>>>> >>>>>> The problem is that when it decides not to chunk it does not chunk >>>>>> the >>>>>> payload but the it does not remove the header. So when the request >>>>>> goes >>>>>> to >>>>>> the server it sees that the chunked transfer-encoding has been set >>>>>> but >>>>>> the >>>>>> CXF did not chunk the request. So the server throws an exception >>>>>> saying >>>>>> its >>>>>> an invalid chunk header. >>>>>> >>>>>> In Camel HTTP component this has been taken care by having a >>>>>> HttpHeaderFilterStrategy and therefore this does not happen if camel >>>>>> http >>>>>> endpoints are used instead of CXF. >>>>>> >>>>>> This in my opinion is a BUG. >>>>>> >>>>>> The workaround is that the threshold should be set to a very low >>>>>> value >>>>>> so >>>>>> it >>>>>> chunks almost all requests. >>>>>> >>>>>> Best Regards, >>>>>> Madhav >>>>>> >>>>>> >>>>>> unmarshall wrote: >>>>>>> >>>>>>> Hi All, >>>>>>> >>>>>>> I am using Camel 2.5. I need to disable chunking and for that i have >>>>>>> configured the following: >>>>>>> >>>>>>> <http-conf:conduit name="*.http-conduit"> >>>>>>> <http-conf:client AllowChunking="false"/> >>>>>>> </http-conf:conduit> >>>>>>> >>>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> Willem >>>>> ---------------------------------- >>>>> FuseSource >>>>> Web: http://www.fusesource.com >>>>> Blog: http://willemjiang.blogspot.com (English) >>>>> http://jnn.javaeye.com (Chinese) >>>>> Twitter: willemjiang >>>>> >>>>> >>>> >>> >>> >>> -- >>> Willem >>> ---------------------------------- >>> FuseSource >>> Web: http://www.fusesource.com >>> Blog: http://willemjiang.blogspot.com (English) >>> http://jnn.javaeye.com (Chinese) >>> Twitter: willemjiang >>> >>> >> > > > -- > Willem > ---------------------------------- > FuseSource > Web: http://www.fusesource.com > Blog: http://willemjiang.blogspot.com (English) > http://jnn.javaeye.com (Chinese) > Twitter: willemjiang > > -- View this message in context: http://camel.465427.n5.nabble.com/CXF-http-conduit-AllowChunking-does-not-work-tp3247495p3258717.html Sent from the Camel - Users mailing list archive at Nabble.com.
