FTPClient Téléchargement du Fichier = exception socketexception: Connection reset
Je suis en train de télécharger un simple fichier txt via FTP en utilisant XAMPP et FileZilla.
Je suis à l'aide de la Apache Commons Net 3.0.1 De La Bibliothèque.
C'est mon code, des choses très basiques:
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) {
}
}
Mais... type storefile() throws java.net.Exception 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)
Quel est le problème?? 🙁
J'ai essayé aussi sur un site de service d'hébergement, avec le même résultat...
Je me demande si c'est un pare-feu ou de windows services connexes problème??
dans mon cas, le même message d'erreur a été causée par une mauvaise configuration de VSFTPD: serverfault.com/questions/524695/...
OriginalL'auteur Oneiros | 2011-11-30
Vous devez vous connecter pour publier un commentaire.
Résolu par l'exécution de cette comme administrateur à l'invite de commande:
C'est un Java 7 bug sur les machines Windows, il est rapporté ici.
OriginalL'auteur Oneiros
Je suis honnêtement pas sûr, mais vous devriez essayer le suivant:
Utiliser quelque chose comme le code suivant:
après
client.login("user", "password");
pour vérifier l'état de votre connexion.Si vous n'obtenez pas de bons conseils de code ci-dessus, après avoir invoqué
client.storeFile("textfile.txt", in);
essayez d'ajouterclient.completePendingCommand();
.Bonne chance! 🙂
SocketException
en invoquantclient.completePendingCommand()
230 est bon. J'ai vérifié et le
completePendingCommand()
est nécessaire uniquement si vous utilisez lestoreFileStream
méthode (que vous pouvez essayer une alternative). Quelle ligne de code est jeter de l'exception? Est-il tout fichier créé dans le serveur (peut-être vide)?OriginalL'auteur Gevorg
Ensemble:
client.setUseEPSVwithIPv4( true );
Cela fonctionne si vous ne pouvez pas apporter des modifications à la Fenêtre paramètres du pare-feu.
OriginalL'auteur Justin James Campbell