新编辑: 现在我找到了原因,这是因为有两个服务器,它写入第一个服务器的临时文件夹,并尝试从第二个服务器读取。但我仍然没有找到解决方案,除非写入Amazon S3并从那里读取。
我尝试使用struts2动作导出csv。但是,如果我尝试导出10次,我只能成功一次,所有其他人都会因为找不到文件异常而失败(如果我再次刷新链接,则可以下载该文件)。这是我的代码:
public String exportFile(String fileName) {
File exportFile = null;
try {
if (CollectionUtils.isEmpty(receipts)) {
return "";
}
exportFile = File.createTempFile(fileName, ".csv");
exportFile.deleteOnExit();
try (BufferedWriter fw = new BufferedWriter(new FileWriter(exportFile))) {
try {
fw.write("test");
} finally {
fw.close();
}
}
return exportFile.getPath();
} catch (Exception ex) {
logger.error("Error exporting report. ", ex.getMessage());
}
return "";
}
String getStreamFromPath(String filePath) {
try {
File downloadFile = new File(filePath);
fileInputStream = new FileInputStream(downloadFile);
return SUCCESS;
} catch (IOException e) {
log.error(e.getMessage(), e);
return ERROR;
}
}
这真的很奇怪,当我在另一台服务器上测试它完全正常。有什么想法吗?