关于excel 导出 springboot 报错org.springframework.web.HttpMediaTypeNotAcceptableException

关于excel 导出 springboot 报错org.springframework.web.HttpMediaTypeNotAcceptableException,第1张

关于excel 导出 springboot 报错org.springframework.web.HttpMediaTypeNotAcceptableException
org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation

项目都是@ RestController 返回结果都是json
通过response 导出 xlsx 报错

    @PostMapping(value = "/exportExcel")
    public Result exportExcel(@RequestBody List  bizNos, HttpServletResponse response) {
        service.exportExcel(query, response);
        return Results.success();
    }
    @PostMapping(value = "/exportExcel")
    public void  exportExcel(@RequestBody List  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 写出的时候, 不应该有返回值, 则不会触发上述方法的调用,同事写的代码不小心。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5686569.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存