Hello Team, Good morning !
I have a route exposed as REST endpoint with method POST which should extract attachment file from the request but somehow, it’s not working. But the same route - of course with different logic – able to extract attachment from the body. Could you please explain this behavior.? You can find more information below. Camel version : 4.8.03 curl --location 'http://0.0.0.0:8888/camel/upload' \ --header 'Content-Type: multipart/form-data' \ --form 'filename=@"/C:/Users/karthik/Downloads/agv_2025032716202293.xml"' *Endpoints are exposed using REST DSL with Servlet component. * restConfiguration() .component("servlet") // Use Servlet (important for Spring Boot) .bindingMode(RestBindingMode.*off*) // Ensures JSON response .contextPath("/") // Base API Path .apiContextPath("/api-doc") // OpenAPI spec available at /api-doc .apiProperty ("api.title" *,*"example project") .apiProperty ("api.version" *,*gitCommitId) .componentProperty("responseBufferSize"*,* "100000").endpointProperty("attachmentMultipartBinding"*, *"true")*;* *Route * From(rest:post:floorplan/upload?consumes=multipart/form-data) .process(exchange -> { Message message = exchange.getMessage(); AttachmentMessage in = exchange.getIn(AttachmentMessage.class); System.out.println("has attachments" + in.getAttachments().size()); }) *But the below logic works, here I am not sure how attachment is read from the message body which is ideal should be present in the message attachment. * try( InputStream bis = new BufferedInputStream(exchange.getMessage().getMandatoryBody(InputStream.class)); BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("upload/abc.bin"));){ int bytesRead = bis.read(); while (bytesRead != -1){ bos.write(bytesRead); bytesRead = bis.read(); } Best regards, *Karthik Prabhu N*