我有一个带有驼峰的弹簧启动应用程序,我尝试使用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) {
}
}
}
有人可以帮助我解决我的问题吗?
提前致谢。
答案 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()方法,它完美运行,希望这有助于其他人。