Java ed FTP

di il
11 risposte

Java ed FTP

Salve a tutti, cerco di esporvi il mio problema.
Sono alle prime armi,ho creato un server ftp tramite filezilla, tutto ok...riesco a vedere file,caricare e scaricare file sia tramite filezilla client che tramite linea di comando.
Ora volevo integrare questi funzionamenti in un app java,per iniziare;
QUindi ho letto della libreria ftp4j ed ho buttato giù tre linea di codice...
public ClientForlenza() {
		
	//dichiaro un client
	FTPClient client = new FTPClient();
	//connetto
	try{
	client.connect("******.no-ip.biz");
	client.login("****","****");
	client.changeDirectory("rec aom");
	FTPFile[] list = client.list();
	
	
	}
    catch(Exception e){
    	e.printStackTrace();
    }

	}
Il risultato?Questo...
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
at sun.nio.cs.StreamDecoder.read(Unknown Source)
at sun.nio.cs.StreamDecoder.read0(Unknown Source)
at sun.nio.cs.StreamDecoder.read(Unknown Source)
at java.io.InputStreamReader.read(Unknown Source)
Sapete aiutarmi?Grazie anticipatamente.

11 Risposte

  • Re: Java ed FTP

    Beh intanto cerca di capire dove avviene l'errore
    (se in fase di login piuttosto che in change directory etc)
    sembra che il server rifiuti la connessione FTP, indi prova con qualche programma sniffer tipo wireshark o fiddler per vedere il perché di questo errore tramite i pacchetti che vengono inviati al server visto che il vero errore apparirà sicuramente a livello di pacchetto, quidi le loro intestazioni e vedi il problema.

    Ciao.
  • Re: Java ed FTP

    No la connessione avviene ed anche il change directory il problema sta quando provo a vedere i file tramite listnames oppure quando provo a caricare o scaricare qualcosa.
  • Re: Java ed FTP

    Hai provato a vedere le intestazione dei pacchetti con i programmi che ti ho detto?
    con questo errore qui
    java.net.SocketException: Connection reset
    difficilmente qualcuno ti può aiutare, praticamente non dice nulla...


    P.S.
    ho letto adesso che il problema potrebbe essere un problema di autorizzazioni.
    Leggi questi articoli e vedi se va...
    http://stackoverflow.com/questions/10166337/ftp-error-while-downloading-uploading-with-ftp4j-library-in-java-application
    http://stackoverflow.com/questions/8333797/ftpclient-uploading-file-socketexception-connection-reset

    Ciao
  • Re: Java ed FTP

    Come faccio a vedere i pacchetti?
  • Re: Java ed FTP

    Te l'ho scritto prima...
    " indi prova con qualche programma sniffer tipo wireshark o fiddler......"

    cmq ti consiglio di seguire i commenti del forum stackoverflow che dovrebbero riguardre il tuo problema.
  • Re: Java ed FTP

    Ti ringrazio per quelle due pagine,non so come ma ora riesco a visualizzare il contenuto del server,l'unico problema è che quando provo a fare un upload mi dice it.sauronsoftware.ftp4j.FTPException [code=550, message= Permission denied][/b]. Mi chiedo :"Può darsi che mi da quest errore perchè le cartelle sono in sola lettura?".
  • Re: Java ed FTP

    Hai fatto una domanda e ti sei dato una risposta.
    Penso di si.
  • Re: Java ed FTP

    Ti ringrazio tantissimo,ho lavorato un pò con la modalità passiva ed ora funziona tutto.Ho implementato molto codice,ora sono arrivato quasi alla fine ,devo far in modo che un utente possa salvare un file che è presente nella directory su server,quindi pensavo di usare un JFileChooser...però non so cosa passargli come path...
    JFileChooser fc=new JFileChooser(Client.CurrentDirectory());
    Se faccio così non mi funziona,ossia mi parte sempre da Documenti.
  • Re: Java ed FTP

    Non è così semplice cme sembra.
    JFileChooser in modalità normale dovrebbe funzionare nel tuo file system.

    Per le directory remote (addirittura via FTP) penso proprio che la tua soluzione non vada bene.

    vfsjfilechooser
    http://sourceforge.net/projects/vfsjfilechooser/files

    oppure oggetto vfsjfilechooser2
    http://code.google.com/p/vfsjfilechooser2

    e anche un altro oggetto del genere
    http://vfsjfilechooser.sourceforge.net

    chr dovrebbero fare quello che vuoi te.

    Vedi di studiarti come funzionano gli oggetti e poi li applici al tuo sistema.

    Ciao
  • Re: Java ed FTP

    Ho risolto il problema,in locale funziona tutto quando eseguo il jar su un altro pc invece mi fa solo la connessione e disconnessione.Non mi carica ne scarica niente...posto un esempio di codice
    public boolean upload(File f){
    	boolean caricamento=false;
    	try{
    	client.enterLocalActiveMode();
        client.setFileType(FTP.BINARY_FILE_TYPE);
    	InputStream input = new FileInputStream(f.getAbsolutePath());
    	client.storeFile("aomrec/"+f.getName(),input);
    	caricamento=true;
    	}
    	catch(Exception e){e.printStackTrace();}
    	
    	return caricamento;
    	}
    	
    Può essere client.enterLocalActiveMode()?
  • Re: Java ed FTP

    Onestamente non lo so...
    non conosco bene questa libreria...
Devi accedere o registrarti per scrivere nel forum
11 risposte