Как прочитать файл и отправить в виде потока на другую конечную точку - PullRequest
0 голосов
/ 24 января 2019

Мне нужно прочитать файл, используя Apache Camel, и отправить его на другую конечную точку в виде потока.

public class SimpleRouteBuilder extends RouteBuilder {

    @Override
    public void configure() throws Exception {
        from("file:C:/inputFolder?noop=true").to("streamEndPoint");
    }

}

1 Ответ

0 голосов
/ 24 января 2019

Вот несколько простых рабочих примеров маршрутов из (file) .to (rest-service)

      //receiver
      from("jetty://http://0.0.0.0:5514/path/getFile")
            .process(exchange -> {
                if (exchange.getIn().getAttachments() != null) {
                    for (String key : exchange.getIn().getAttachments().keySet()) {
                        DataHandler dataHandler = exchange.getIn().getAttachments().get(key);
                        System.out.println(String.format("Receive attachment:%s size:%s", dataHandler.getName(), dataHandler.getInputStream().available()));
                    }
                }
            });


    //sender
    from("file:/Users/user1/test/?delete=true&delay=5000")
            .process(exchange -> {
                GenericFile<File> body = exchange.getIn().getBody(GenericFile.class);
                exchange.getIn().setHeader("Content-Type", MediaType.MULTIPART_FORM_DATA);
                exchange.getIn().setHeader("CamelHttpMethod", "POST");
                exchange.getIn().setBody(MultipartEntityBuilder.create()
                        .addPart(body.getFileName(), new FileBody(body.getFile(), ContentType.MULTIPART_FORM_DATA, body.getFileName()))
                        .build()
                );
            })
            .to("http4://0.0.0.0:5514/path/getFile?synchronous=true")//camel-http4 component for sending to our rest service

    ;

Вот целый пример , который вы можете запустить и посмотреть, как он работает.

...