当出现问题时,我会去查看运行该任务电脑上的命令窗口是否已经打开,此时XML文件还未完全下载。如果我关闭命令窗口并手动运行任务,则一切正常运行。
我用于下载XML文件的代码如下:
private void loadFTPFile(String host, String username, String password, String filename, String localFilename){
System.out.println(localFilename);
FTPClient client = new FTPClient();
FileOutputStream fos = null;
try {
client.connect(host);
client.login(username, password);
String localFilenameOutput = createFile(assetsPath + localFilename);
fos = new FileOutputStream(localFilenameOutput);
client.retrieveFile(filename, fos);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fos != null)
fos.close();
client.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}
这个函数在循环中被调用,当它失败时,一切都停止了,脚本不会继续执行下一个提要。
我不确定发生了什么,可能是连接丢失,但我认为try/catch应该可以捕获这种情况。我不知道是否需要使用超时或线程来解决问题(但我从未使用过线程)。
有人能告诉我为什么会发生这种情况以及我可以做什么来解决这个问题吗?