Camel - 处理文件(处理器)时如何更改目标(to)

时间:2017-10-31 19:56:18

标签: spring-boot apache-camel

我有一个spring boot应用程序和camel我使用FTP读取文件,我处理文件并将该文件移动到另一个位置,我的问题是我需要根据文件名更改目标。我读到我可以使用“toD”并使用属性占位符动态更改目标但我不知道如何从处理器设置该值或者甚至可以这样做?,

这是我的主要课程:

@Component
public class Controlador extends RouteBuilder {

    @Autowired
    Procesador objProcesador;

    @Override
    public void configure() throws Exception {
        from("ftp://user@ip:21?password=mypassword&passiveMode=true&delete=true").streamCaching().convertBodyTo(InputStream.class).process(objProcesador).to("file:C:\\Users\\juan.gaytan\\Desktop\\prueba2");
    }

}

这是我的处理器类:

@Service
public class Procesador implements Processor {

    @Override
    public void process(Exchange exchange) throws Exception {
    }
}

提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以按照here的说明使用简单。 一个例子是将交换头中的目的地设置为

exchange.getOut().setHeader("uri", destination);

并在路线中使用如下

<toD uri="${header.uri}"/>