org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
项目都是@ RestController 返回结果都是json
通过response 导出 xlsx 报错
@PostMapping(value = "/exportExcel")
public Result<Void> exportExcel(@RequestBody List<String> bizNos, HttpServletResponse response) {
service.exportExcel(query, response);
return Results.success();
}
@PostMapping(value = "/exportExcel")
public void exportExcel(@RequestBody List<String> bizNos, HttpServletResponse response) {
service.exportExcel(query, response);
}
l第一种 导出 设置如下配置
response.setContentType(“application/vnd.openxmlformats-officedocument.spreadsheetml.sheet”);
response.setContentType(“application/vnd.ms-excel”);
sprng mvc 报错Could not find acceptable representation
仔细分析了 如果通过response写出去话,不应该触发spring mvc HttpMediaTypeNotAcceptableException
最终定位了
org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor#writeWithMessageConverters(T, org.springframework.core.MethodParameter, org.springframework.http.server.ServletServerHttpRequest, org.springframework.http.server.ServletServerHttpResponse)
这个方法 发现 Spring MVC的 MediaType 不支持上述的 content Type .
最后明白了response 写出的时候, 不应该有返回值, 则不会触发上述方法的调用,同事写的代码不小心。