On 11 October 2012 13:13, David Hoffer <[email protected]> wrote: > Thanks for the reply and info. > > How do I set it in Active mode? I don't see a method to do this. I > do see these: > > setActiveExternalIPAddress() > setActivePortRange() > > But those seem to imply they are used if already in active mode...not > clear how to do that.
See the example: http://commons.apache.org/net/examples/ftp/FTPClientExample.java > I have added the ProtocolCommandListener I'll see what it report. > > Does anyone know what ports must be open for this to work? They are dynamic. > -Dave > > On Thu, Oct 11, 2012 at 2:29 AM, sebb <[email protected]> wrote: >> On 11 October 2012 04:27, David Hoffer <[email protected]> wrote: >>> I just moved an app over to an EC2 server and I'm having trouble >>> sending data via FTP. This has worked for years on a different Linux >>> server, the new one is Linux too just on Amazon EC2. >>> >>> The code is really simple...basically... >>> >>> FTPClient ftp = new FTPClient(); >>> ftp.login(username, password); >>> ByteArrayInputStream byteArrayInputStream = new >>> ByteArrayInputStream(fileBytes); >>> OutputStream os = ftp.storeFileStream(fileName); >>> >>> byte buf[] = new byte[8192]; >>> int bytesRead = byteArrayInputStream.read(buf); >>> while (bytesRead != -1) { >>> os.write(buf, 0, bytesRead); >>> bytesRead = byteArrayInputStream.read(buf); >>> } >>> byteArrayInputStream.close(); >>> os.close(); >>> ftp.completePendingCommand(); >>> ftp.logout(); >>> >>> when I debug it...it blocks forever at the call to storeFileStream(). >>> When it runs while not debugging I get a SocketException (Connection >>> time out)...not sure if at same line or another such as os.write().. >>> >>> I was using version 3.0.1, I just upgraded to 3.1 to see if that would >>> help but it has the same problem. The only difference I can think of >>> is that the old server was using Java 6 the new one is Java 7. One >>> other thing that is different is that the EC2 has most ports blocked, >>> I've opened port 21 and UDP/DNS. Is there any other ports that are >>> needed for FTP? >>> >>> What might be causing this? I'm completely stuck not knowing where to >>> look at this point. >> >> Most likely there is a port that is not open. >> >> Try using active FTP mode; that may work better, or may cause issues >> if there is a dumb NAT box in the way. >> >> Try adding a protocol command listener: >> >> ftp.addProtocolCommandListener(new PrintCommandListener(new >> PrintWriter(System.out), true)); >> >>> -Dave >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [email protected] >>> For additional commands, e-mail: [email protected] >>> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
