【发布时间】:2018-07-22 07:01:00
【问题描述】:
这是我的代码:
@RequestMapping(value = "/report/download", method = RequestMethod.GET,produces="application/vnd.ms-excel")
public Response getReportFile(@QueryParam("reportid") Long reportId)
{
System.out.println("Param"+reportId);
Long n=(long) 10;
String json=reportService.getReportFile(n);
File file = new File("D:\\Agent Information.xls");
ResponseBuilder response = Response.ok((Object) file);
response.header("Content-Disposition","attachment; filename=Sample.xls");
return response.build();
}
我在 java 控制台中收到以下错误:处理程序执行导致异常:找不到可接受的表示
【问题讨论】:
-
能否提供更多日志?理想情况下,调用端点后来自应用程序的堆栈跟踪
-
AbstractHandlerExceptionResolver.logException:186 -> 处理程序执行导致异常:找不到可接受的表示...并且在浏览器中点击时我得到“目标资源没有当前表示根据请求中收到的主动协商标头字段,用户代理可以接受,并且服务器不愿意提供默认表示。”
-
请建议解决这个问题
-
您的错误表明您的响应没有合适的转换器。您使用的“响应”类是什么,它是否完全是 spring MVC 的一部分,我怀疑它不是,尝试使用 ResponseEntity
作为响应并将文件作为流发送。 -
我使用了 Jaxrs 响应类,但我得到了这个响应。甚至尝试过简单的例子。