返回SpringBoot的Excel出现错误"No converter for [class [B] with preset Content-Type 'null'“

浏览 2482关注 0回答 1得票数 0
原文

我正在实现一个使用Apache POI和Java 1.8创建Excel文件并将其作为响应返回的API。

@GetMapping(value = "/download", produces = "application/vnd.ms-excel")
public ResponseEntity<byte[]> downloadExcel(@RequestParam String param) throws IOException {
    XSSFWorkbook workbook = service.createExcel(param);
    ByteArrayOutputStream stream = new ByteArrayOutputStream();
    workbook.write(stream);
    workbook.close();
    return ResponseEntity.ok()
            .body(stream.toByteArray());
}

当我尝试用Postman调用API时,我得到了这个错误:

"title": "Internal Server Error",
"status": 500,
"detail": "No converter for [class [B] with preset Content-Type 'null'"

如果我将该文件保存到我的机器上,我可以看到该文件正在正确生成。所以真正的问题在于答案。如果我删除mime类型,API会返回200状态,但内容混乱,不能在excel中打开。

原文
Matt Ke修改于2021-09-23 23:41

1 个回答

高票数最新
KarinaMz
回答于2021-09-17 18:34
得票数 0

我找到了导致错误的原因。有人在接口中设置了HttpMessageConverters,并使其返回Content-Type:“应用程序/问题+json”。

页面原文内容由KarinaMz、Matt Ke提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:https://stackoverflow.com/questions/69215084复制

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com