2015-11-26 1 views
3

Это то, что я пытаюсь подключиться с java к файловому серверу FileZilla FTPS. Я могу сделать логин, но когда я пытаюсь перечислить файлы, которые я получаю исключение:Соединение с Java с сервером FileZilla

javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake 
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:946) 
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1312) 
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1339) 
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1323) 
    at org.apache.commons.net.ftp.FTPSClient._openDataConnection_(FTPSClient.java:619) 
    at org.apache.commons.net.ftp.FTPClient._openDataConnection_(FTPClient.java:759) 
    at org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:3293) 
    at org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:3271) 
    at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:2930) 
Caused by: java.io.EOFException: SSL peer shut down incorrectly 
    at sun.security.ssl.InputRecord.read(InputRecord.java:482) 
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:927) 

Я пробовал все возможные решения по линии, ничего не работает для меня, это код I'm, используя (с apache commons-net):

FTPSClient ftps = new FTPSClient(); 
ftps.setTrustManager(TrustManagerUtils.getAcceptAllTrustManager()); 


ftps.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out))); 

int reply; 

ftps.connect("xxx.xx.x.xx",8500); 
reply = ftps.getReplyCode(); 

if (!FTPReply.isPositiveCompletion(reply)) { 
    ftps.disconnect(); 
    System.err.println("FTP server refused connection."); 
    System.exit(1); 
} 

if (!ftps.login("user", "*******")) { 
    ftps.logout(); 
} 

ftps.setBufferSize(1000);     
ftps.execPBSZ(0);   
ftps.execPROT("P"); 
ftps.enterLocalPassiveMode(); 
ftps.changeWorkingDirectory("/"); 
FTPFile[] files = ftps.listFiles(); 

ftps.logout(); 

Я по-настоящему благодарю вас за помощь. Заранее спасибо.

+0

Можете ли вы дать мне свои полномочия filezilla? –

+0

пожалуйста, пожалуйста пожалуйста? –

+0

и ваша кредитная карта –

ответ

1

Я нашел решение. Это было связано с повторным использованием сеанса, Apache Commons Net имеет какую-то ошибку, она не позволяет повторно использовать сеанс, мне пришлось реализовать библиотеку cyberduck cyberduck source code. Надеюсь, это поможет кому-то в будущем, спасибо за вашу помощь.

+0

Я забыл что-то, класс, в котором мы нуждаемся, - FTPClient –

+0

У меня очень похожая проблема. вы объясните больше, как вы его решили? Я попытался скопировать ваш FTPClient, но не удалось. –

 Смежные вопросы

  • Нет связанных вопросов^_^