FTPClient Uploading File = SocketException: Connection reset
17,075
Solved by running this as administrator in the command prompt:
netsh advfirewall set global StatefulFTP disable
This is a Java 7 bug on Windows machines, it is reported here.
Author by
Oneiros
I'm an Italian Programmer and Software Engineer. I love C#, Java, C++, Gaming and Virtual Reality Development
Updated on July 18, 2022Comments
-
Oneiros almost 2 years
I'm trying to upload a simple txt file via FTP using XAMPP and FileZilla.
I'm using the Apache Commons Net 3.0.1 Library.
This is my code, very basic things: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) { } }
But... storeFile() throws a 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)
What's the problem?? :( I tried also on an online hosting service, with the same result...
I wonder if this is a firewall or windows' services related problem?? -
Oneiros over 12 yearsThank you for the answer :) i get "230 230 Logged on" by printing the replies and the same
SocketException
by invokingclient.completePendingCommand()
-
Marsellus Wallace over 12 years230 is good. I double checked and the
completePendingCommand()
is necessary only if you use thestoreFileStream
method (that you might want to try as an alternative). What line of code is throwing the exception? Is there any file created in the server (maybe empty)? -
Greg Case about 12 yearsI wish I had come across this answer 4 hours ago, I would have saved myself some frustration. This is exactly the same problem I was having, and this fix worked like a charm. Thank you!