ftpclient example ejemplo java android ftp xampp apache-commons-net

java - example - FTPClient Uploading File=SocketException: restablecimiento de la conexión



ftp java ejemplo (3)

Sinceramente, no estoy seguro, pero deberías probar lo siguiente:

Usa algo como el siguiente código:

System.out.println(client.getReplyCode()); for(String s : client.getReplyStrings()) System.out.println(s);

after client.login("user", "password"); para verificar el estado de su conexión.

Si no obtiene ningún buen consejo del código anterior, después de invocar client.storeFile("textfile.txt", in); intente agregar client.completePendingCommand(); .

¡Buena suerte! :)

Estoy intentando subir un archivo txt simple a través de FTP usando XAMPP y FileZilla.
Estoy usando la biblioteca Apache Commons Net 3.0.1 .
Este es mi código, cosas muy básicas:

FTPClient client = new FTPClient(); InputStream in = new ByteArrayInputStream("IT WORKS! :D".getBytes()); try { client.connect("localhost"); client.login("user", "password"); client.enterLocalPassiveMode(); client.storeFile("textfile.txt", in); } finally { try { in.close(); client.logout(); client.disconnect(); } catch (Exception e) { } }


Pero ... storeFile () arroja una java.net.SocketException:

Exception in thread "main" java.net.SocketException: Connection reset at java.net.SocketInputStream.read(SocketInputStream.java:189) at java.net.SocketInputStream.read(SocketInputStream.java:121) at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283) at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325) at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177) at java.io.InputStreamReader.read(InputStreamReader.java:184) at java.io.BufferedReader.fill(BufferedReader.java:154) at java.io.BufferedReader.read(BufferedReader.java:175) at org.apache.commons.net.io.CRLFLineReader.readLine(CRLFLineReader.java:58) at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:310) at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:290) at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:474) at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:547) at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:596) at org.apache.commons.net.ftp.FTP.pasv(FTP.java:945) at org.apache.commons.net.ftp.FTPClient._openDataConnection_(FTPClient.java:719) at org.apache.commons.net.ftp.FTPClient.__storeFile(FTPClient.java:551) at org.apache.commons.net.ftp.FTPClient.storeFile(FTPClient.java:1704) at ftpexample.ftpexample.main(ftpprova.java:17)


¿¿Cuál es el problema?? :( Lo intenté también en un servicio de alojamiento en línea, con el mismo resultado ...
Me pregunto si esto es un firewall o un problema relacionado con los servicios de Windows.


Resuelto ejecutando esto como administrador en el símbolo del sistema :

netsh advfirewall set global StatefulFTP disable

Este es un error de Java 7 en máquinas con Windows, se informa aquí .


Conjunto:

client.setUseEPSVwithIPv4( true );

Esto funciona si no puede realizar cambios en la configuración del firewall de Windows.