response.reset();
response.setContentType("application/pdf");
try (FileInputStream inputStream = new FileInputStream(getRealPath(bookId));
OutputStream outputStream = response.getOutputStream()) {
IOUtils.write(IOUtils.toByteArray(inputStream), outputStream);
response.setHeader("Content-Disposition",
"inline; filename=" + bookId + ".pdf");
outputStream.flush();
} catch (Exception e) {
log.error("返回pdf二进制流异常", e);
//删除生成的文件
File file = new File(getRealPath(bookId));
if (file.exists() && file.delete()) {
log.info("删除文件成功!");
}
}
}
java.lang.IllegalStateException: UT000002: The response has already been started
at io.undertow.server.HttpServerExchange.setStatusCode(HttpServerExchange.java:1406)
at io.undertow.servlet.spec.HttpServletResponseImpl.reset(HttpServletResponseImpl.java:576)
at javax.servlet.ServletResponseWrapper.reset(ServletResponseWrapper.java:197)
at javax.servlet.ServletResponseWrapper.reset(ServletResponseWrapper.java:197)
at com.222.222.222.service.impl.xServiceImpl.getResponse(PrintPDFServiceImpl.java:1174)