Java 通过Quartz scheduler通过FTP下载文件

Java 通过Quartz scheduler通过FTP下载文件,java,ftp,network-programming,quartz-scheduler,Java,Ftp,Network Programming,Quartz Scheduler,我试着使用Ftp下载独立应用程序,效果很好。但当我将其包含到web应用程序中的Quartz调度器中时,它就失灵了 这就是我所做的 public class FtpTransfer implements StatefulJob { public void execute(JobExecutionContext arg0) throws JobExecutionException { FTPClient ftp = new FTPClient(); FileOutputStream

我试着使用Ftp下载独立应用程序,效果很好。但当我将其包含到web应用程序中的Quartz调度器中时,它就失灵了

这就是我所做的

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);
        }
    }
}
}
当我启动服务器时,它会打印

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

每10秒。但它不是从给定的路径下载文件。仅当程序没有越过FTPFile[]FTPFile=ftp.listFiles(路径)这一行时,才发出邮件。我做错了什么?

谢谢你的评论。我发现了问题所在。在lib中包含雅加达oro.jar之后,它的工作状态很好。

谢谢您的评论。我发现了问题所在。在lib中包含雅加达oro.jar后,其工作正常。

检查您是否必须使用主动或被动ftp,如果防火墙/网络网关阻止主动ftp,您只需阻止,也许最终会超时-切换到被动ftp通常可以解决此问题。同意nos,检查以下ftp客户端方法是否有助于您尝试:检查您是否必须使用主动或被动ftp,如果防火墙/网络网关阻止主动ftp,您只需阻止并可能最终超时-切换到被动ftp通常可以解决此问题。同意nos,检查以下FTPClient方法是否有助于您尝试: