I use jsch to download files from the server, my code is below.
public static void downloadFile(TpcCredentialsDTO dto) { logger.trace("Entering downloadFile() method"); Session session = null; Channel channel = null; ChannelSftp channelSftp = null; boolean success = false; try { JSch jsch = new JSch(); session = jsch.getSession(dto.getUsername(), dto.getHost(), dto.getPort()); session.setPassword(dto.getPassword()); session.setConfig("StrictHostKeyChecking", "no"); session.connect(); logger.info("Connected to " + dto.getHost() + "."); channel = session.openChannel("sftp"); channel.connect(); channelSftp = (ChannelSftp) channel; List<String> filesToDownload = getFilesToDownload(dto,channelSftp); if (!filesToDownload.isEmpty()) { for (String fileDownloadName : filesToDownload) { success = false; OutputStream output = new FileOutputStream( "C:\Download\BLT_03112012"); channelSftp.get("BLT_03112012",output); success = true; if (success) logger.info(ServerConstants.DOWNLOAD_SUCCESS_MSG + fileDownloadName); output.close(); } }else { logger.info(ServerConstants.NO_FILES_TO_DOWNLOAD + ServerUtils.getDateTime()); success = true; } } catch (JSchException ex) { logger.error( ServerConstants.SFTP_REFUSED_CONNECTION, ex); } catch (SftpException ex) { logger.error(ServerConstants.FILE_DOWNLOAD_FAILED, ex); } catch (IOException ex) { logger.error(ServerConstants.FILE_NOT_FOUND, ex); }catch (Exception ex) { logger.error(ServerConstants.ERROR, ex); }finally { if (channelSftp.isConnected()) { try { session.disconnect(); channel.disconnect(); channelSftp.quit(); logger.info( ServerConstants.FTP_DISCONNECT); } catch (Exception ioe) { logger.error(ServerConstants.FTP_NOT_DISCONNECT, ioe); } } } logger.trace("Exiting downloadFile() method"); } sftpChannel.get(filename, outputstream) is throwing an error.
2: File not found at com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2629) at com.jcraft.jsch.ChannelSftp._get(ChannelSftp.java:977) at com.jcraft.jsch.ChannelSftp.get(ChannelSftp.java:946) at com.jcraft.jsch.ChannelSftp.get(ChannelSftp.java:924) at za.co.tpc.sftpserver.SftpConnection.downloadFile(SftpConnection.java:72) at za.co.tpc.server.execute.FtpMtn.main(FtpMtn.java:44)
The same code loads the file types of a text document, but does not work for a File Type file
Faithn
source share