我正在尝试使用ServletOutputStream按序列生成文档。我总共有4份文件。我把这些作为一个字符串数组,然后迭代数组,以获得每个。但只有第一份文件被刷新,但其他三份文件没有被刷新。当我调试时,它正在执行所有行,但不知道为什么剩下的三个没有下载。这是我的代码
流程是
当我指向“my_server / api / getDocs?tkey = abc”时,它将从实现中进行一次外部Web服务调用。在那之后,我将检查我是否收到了OK状态。如果我状态良好,我必须生成4个文档。
public ResultDto getDocs(HttpServletResponse response,@PathVariable("tKey") String tKey) throws ClassNotFoundException, IOException {
logger.debug(tKey);
ResultDto result = new ResultDto();
result = myService.confirmTransaction(tKey);
if(QBConstants.OK.equals(result.getStatus())) {
String[] documents = {"2","3","4","5"};//
for (String documentKey: documents) {
byte[] documentBytes = myService.generateDocument(tKey, documentKey);
String documentType = myUtil.getDocumentType(documentKey);
response.setHeader("Content-Disposition", "attachment;filename="+documentType);
response.setContentType("application/pdf");
response.setHeader("Expires", "0");
response.setHeader("Cache-Control", "must-revalidate, postcheck=0, pre-check=0");
response.setHeader("Pragma", "public");
response.setContentLength(documentBytes.length);
ServletOutputStream out = response.getOutputStream();
out.write(documentBytes);
out.flush();
out.close();
logger.debug("********** DOCUMENT GENERATED **********");
}
}
}
return result;
并且无法接收返回数据。我想要刷新以及获取结果对象。在刷新文档逻辑之前,我能够获得结果对象。
非常感谢任何想法。