已解决:No converter for [class XXX] with preset Content-Type ‘XXX‘

http://localhost:8085/api/v1.0/user/export org.springframework.http.converter.HttpMessageNotWritableException: No converter for [class cn.com.wind.server.model.vo.Response] with preset Content-Type 'multipart/form-data;charset=utf-8'

最近在开发过程中写一个导出数据对象的接口,使用的 EasyExcel 插件,导出一个对象的二进制流供前端使用。在写的过程中发现报了上述错误 No converter for [class cn.com.wind.server.model.vo.Response] with preset Content-Type 'XXX'

错误中提示的很清楚,无法转换,目标对象 Response,这个对象是API统一出口,即Controller接口的返回值,意思就是你的Excel返回无法转换成Response对象,肯定无法转换。

所以说,解决方案:返回值为 void。

@PostMapping("/export")
public Response exportUserInfo(@RequestBody UserRequest request, HttpServletResponse response){
	userService.exportUserInfo(request, response);
	return Response.success("ok");
}

修改为

@PostMapping("/export")
public void exportUserInfo(@RequestBody UserRequest request, HttpServletResponse response){
	userService.exportUserInfo(request, response);
}

我在网上搜索该问题时发现很多版本,看了下解决问题的方法大多如此,问题如下:

  • No converter for [class XXX] with preset Content-Type ‘application/vnd.ms-excel;charset=utf-8‘
  • No converter for [class ] with preset Content-Type 'application/octet-stream;charset=UTF-8'

参考文章:文章一文章二

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值