Uploaded image for project: 'Red Hat Fuse'
  1. Red Hat Fuse
  2. ENTESB-11918

Cannot PUT a large message to camel-netty4 consumer

    XMLWordPrintable

Details

    • Bug
    • Resolution: Not a Bug
    • Major
    • None
    • fuse-7.4-GA
    • Camel
    • None
    • % %
    • Hide

      1. Install Fuse 7.4 on Karaf
      2. features:install camel-netty4 and camel-netty4-http
      3. Copy the fillowing Blueprint XML to deploy/

      <?xml version="1.0" encoding="UTF-8"?>
      <blueprint 
          xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
          xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 
              http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">
      
      <camelContext xmlns="http://camel.apache.org/schema/blueprint">
        <route id="netty">
              <from uri="netty4-http:http://localhost:6000/test"/>
              <log logName="common" loggingLevel="INFO" message="1.0 ${headers}" />
              <setBody>
                      <simple>${headers}</simple>
              </setBody>
        </route>
      </camelContext>
      </blueprint>
      

      Then

      curl -X PUT --data-binary @foo localhost:6000/test

      where foo is a file, say, 2Mb in size.

      The request will fail. Addiing ?chunkedMaxContentLength=3000000 works, but only by making the client send the entire file in a single chunk.

      Show
      1. Install Fuse 7.4 on Karaf 2. features:install camel-netty4 and camel-netty4-http 3. Copy the fillowing Blueprint XML to deploy/ <?xml version= "1.0" encoding= "UTF-8" ?> <blueprint xmlns= "http: //www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:xsi= "http: //www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http: //www.osgi.org/xmlns/blueprint/v1.0.0 http: //www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"> <camelContext xmlns= "http: //camel.apache.org/schema/blueprint" > <route id= "netty" > <from uri= "netty4-http:http: //localhost:6000/test" /> <log logName= "common" loggingLevel= "INFO" message= "1.0 ${headers}" /> <setBody> <simple>${headers}</simple> </setBody> </route> </camelContext> </blueprint> Then curl -X PUT --data-binary @foo localhost:6000/test where foo is a file, say, 2Mb in size. The request will fail. Addiing ?chunkedMaxContentLength=3000000 works, but only by making the client send the entire file in a single chunk.

    Description

      A camel-netty4 consumer endpoint receives HTTP messages from a client using PUT with chunked encoding. By default, messages larger than 1Mb are rejected with a "413: entity too large" message. The problem can be overcome, to some extent, by setting chunkedMaxContentLength to a large value, but this parameter is supposed to affect the chunked frame size, not the total message size. The total message size is not known in advance, and will not necessarily be sent in one chunk.

      Attachments

        Activity

          People

            jondruse@redhat.com Jiri Ondrusek
            rhn-support-kboone Kevin Boone
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: