Camel移动后删除文件内容

时间:2017-07-24 23:56:59

标签: spring-boot ftp apache-camel

我有一个带有驼峰的弹簧启动应用程序,我尝试使用FTP将文件从服务器移动到我的本地机器,我的问题是移动后文件是空的,

这是我扩展RouteBuilder类的类:

public class Controlador extends RouteBuilder{
    @Autowired
    private ArchivoBS archivoBS;

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

我的类ArchivoBS实现了Processor接口:

@Service
public class ArchivoBS implements Processor{
    @Override
    public void process(Exchange exchange) {

        InputStream fis = exchange.getIn().getBody(InputStream.class);

        BufferedReader br = new BufferedReader(new InputStreamReader(fis));

        String strLinea;

        while ((strLinea = br.readLine()) != null) {

        }
    }
}

有人可以帮助我解决我的问题吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

感谢提供此链接http://camel.apache.org/why-is-my-message-body-empty.html的@ClausIbsen,我更改了配置方法,现在看起来像这样:

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

我只需要添加.streamCaching()方法,它完美运行,希望这有助于其他人。