【发布时间】:2014-03-12 17:17:41
【问题描述】:
我有一个带有字段的对象
@Column(name = "PDF")
@Lob @Basic(fetch=javax.persistence.FetchType.LAZY)
private byte[] pdf;
我的 dao 使用实体管理器 findbyid() 方法成功检索了这个对象。
当请求到达我的控制器时,我想在浏览器上显示此 pdf 或下载 pdf。
这就是我所做的。
@Autowired
DocDownloadService docService;
HttpServletResponse response;
@RequestMapping("/document/view/{docID}")
public String getAlert(@PathVariable("docID") String docId){
docService.downloadDoc(docId, response);
return null;
}
还有我的服务
@Override
@Transactional
public String downloadDoc(String docId, HttpServletResponse response){
MyDoc doc = this.getDocById(docId); //brings document object from my DAO
try {
response.addHeader("Content-Disposition", "attachment;filename=report.pdf");
response.setContentType("application/pdf");
response.getOutputStream().write(doc.getPdf(), 0, doc.getPdf().length);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
我在“response.addheaders”行收到空指针异常。我不知道为什么。我查看了其他帖子并尝试了所有这些方法,但没有帮助。 任何指针将不胜感激。
【问题讨论】:
标签: web-services hibernate jakarta-ee spring-mvc