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?
Ü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
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