2011-01-05 4 views
1

Ich habe versucht zu arbeiten FTP-Download stand alone-Anwendung und es funktioniert gut. Aber als ich das in den Quartz-Scheduler in der Webanwendung einfügte, blieb es hängen.Laden Sie die Datei über FTP von Quartz Scheduler

Hier ist was ich getan habe.

public class FtpTransfer implements StatefulJob { 
public void execute(JobExecutionContext arg0) throws JobExecutionException { 
    FTPClient ftp = new FTPClient(); 
    FileOutputStream br = null; 
    try 
    { 
     ftp.connect("localhost"); 
     ftp.login("admin", "admin"); 
     String path = "alfresco/MYPUB/Admin/TMM/Pickup"; 
     ftp.setFileType(FTPClient.BINARY_FILE_TYPE); 
     ftp.changeWorkingDirectory(path); 
     System.out.println("After Changing Directory path"); 
     FTPFile[] ftpFile = ftp.listFiles(path); 
     System.out.println("After getting list of files"); 
     System.out.println("Length : "+ftpFile.length); 
     System.out.println("----------------- Downloaded -------------"); 
     for(FTPFile tempFtpFiles : ftpFile) { 
      br = new FileOutputStream("e:\\Downloaded\\"+tempFtpFiles.getName()); 
      ftp.retrieveFile(tempFtpFiles.getName(), br); 
      System.out.println(tempFtpFiles.getName()); 
     } 
     System.out.println("------------------------------------------"); 

    } 
    catch(Exception exception) { 
     System.out.println("Error : "+exception); 
    } finally { 
     try { 
      if(br!=null){ 
       br.close(); 
      } 
      ftp.disconnect(); 
     } catch(IOException e) { 
      e.printStackTrace(); 
      System.out.println("Error : "+e); 
     } 
    } 
} 
} 

Wenn ich den Server zu starten, Er druckt

After Changing Directory path 
After Changing Directory path 
After Changing Directory path 

Alle 10 Sekunden. Aber es lädt die Dateien nicht von dem angegebenen Pfad herunter. Mailnly hat das Programm die Zeile FTPFile [] ftpFile = ftp.listFiles (Pfad) nicht überschritten. Was habe ich falsch gemacht?

+1

Überprüfen Sie, ob Sie aktive oder passive FTP verwenden müssen, wenn ein Firewall/Netz-Gateway aktive FTP blockiert, werden Sie einfach blockieren und vielleicht schließlich Timeout - in der Regel funktioniert das Umschalten auf passives FTP. – nos

+0

Stimmen Sie mit nos überein und prüfen Sie, ob die folgenden FTPClient-Methoden Ihnen dabei helfen: http://commons.apache.org/net/api/org/apache/commons/net/ftp/FTPClient.html#enterLocalPassiveMode%28%29 – kvista

Antwort

1

Vielen Dank für Ihre Kommentare. Ich habe das Problem gefunden. Nach enthalten jakarta-oro.jar in lib, es funktioniert gut.

+0

Danke kelly vista und nos. – i2ijeya

Verwandte Themen