Ciao a tutti, ho un problema :
un programma distribuito a vari utenti che si collega via FTP ad un server.
Non mi ha mai dato problemi fino ad oggi
MI collego in due modi al server :
1- con libreria : org.apache.commons.net.ftp.FTPClient
Questo metodo non da errori
codice:
FTPClient ftp = new FTPClient();
ftp.enterLocalPassiveMode();
ftp.connect(server, 21);
boolean con = ftp.login(username, password);
String fileServer = "file.dat";
if (!dirFtp.equals("null")) {
boolean dirCambia = ftp.changeWorkingDirectory(dirFtp);
}
lfile = new FileOutputStream("file.dat");
boolean c = ftp.retrieveFile(fileServer, lfile);
lfile.close();
ftp.disconnect();
2- Con la libreria apache ho problemi a scaricare file zip, quindi li scarico con :
codice:
BufferedInputStream bis = null;
URL url;
url = new URL(url + dir + "file.zip;type=i");
bis = new BufferedInputStream(url.openStream());
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("file.zip"), 4096);
byte[] data = new byte[4096];
int count;
int val = 0;
int dim = 0;
while ((count = bis.read(data, 0, 4096)) != -1) {
bos.write(data, 0, count);
}
bis.close();
bos.flush();
il secondo metodo mi da (solo su un utente, non era mai successo) errore :
ERRORE : IOException
ERRORE : sun.net.ftp.FtpProtocolException: PORT :500 Illegal PORT command, EPSV ALL in effect
Mi blocca solo il secondo metodo e lascia tranquillamente connettersi con apache ?
Sembra che usino 2 porte diverse ?
Non dovrebbe essere standard la 21 per le connessioni ftp?
Qualcuno saprebbe darmi una spiegazione, o qualche documento per capire perchè apache va in errore a scaricare zip
Grazie.