我尝试使用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秒。但它不是从给定的路径下载文件。 Mailnly程序没有越过FTPFile [] ftpFile = ftp.listFiles(path)。我做错了什么?
答案 0 :(得分:1)
感谢您的评论。我发现了这个问题。在lib中包含 jakarta-oro.jar 之后,它的工作正常。