2012-08-24 47 views
0

我必须在单击超链接时使用SFTP下载位于远程位置的文件。我使用JBOSS 5.1作为我的服务器并使用struts2。我已经实现了下面的代码,并且我发现ConsumerTemplate的receiveBody()会变为null? 任何人都可以请指导我以上问题?Java:使用sftp从远程位置下载文件

代码:

CamelContext ctx = new DefaultCamelContext(); 
       ConsumerTemplate consumer = ctx.createConsumerTemplate(); 
       String camel_ftp_uri = MessageFormat.format(CAMEL_FTP_PATTERN, ftp_mode, ftp_user, ftp_address, ftp_dir, ftp_options); 
       System.out.println("camel_ftp_uri ::: "+camel_ftp_uri); 

       Object obj= consumer.receiveBody(camel_ftp_uri); 
       System.out.println("obj ::"+obj); 

当我打印camel_ftp_uri我越来越:camel_ftp_uri :::

ftp://[email protected]//from_ccc/file.txt?disconnect=true

我refered在SOF以下链接:

How to retrieve a file from a server via SFTP?

在此先感谢

+0

这不是一个问题,这是一个“做我的工作对我来说”的要求。你已经尝试了什么,你遇到了什么问题? – Omaha

+0

@Omaha谢谢你的关心。我已经清楚地提到了SFTP的新功能,并没有得到他们在给出的链接中提到的内容 – Esh

+0

请阅读http://serverfault.com/questions/176149/how-to-provide-a-web-interface-to- sftp服务器,看看是否有帮助 –

回答

1

骆驼FTP组件您必须配置ftp uri与一个起始目录,然后提供文件名作为一个单独的参数下载。你做错了什么是起始目录是文件名。

ftp://[email protected]//from_ccc/file.txt?disconnect=true 

应改为

ftp://[email protected]//from_ccc/?disconnect=true&fileName=file.txt