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.