No converter for [class java.util.LinkedHashMap] with preset Content-Type ‘application/vnd.ms-excel;

这篇具有很好参考价值的文章主要介绍了No converter for [class java.util.LinkedHashMap] with preset Content-Type ‘application/vnd.ms-excel;。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

通常解决方案参考
https://blog.csdn.net/qq_42651201/article/details/120710224

我的报错 

org.springframework.http.converter.HttpMessageNotWritableException:
 No converter for [class com.xxx.dto.Result] with preset Content-Type 'application/vnd.ms-excel;charset=utf-8'

我的问题根因

controller处理逻辑有问题,导致报错,然后被全局异常捕捉,再然后返回了错误信息

也就是说本来没有返回值的方法,最终有返回值class com.xxx.dto.Result ,就会抛出以上错误。

我的解决方案

把controller里面的报错解决,让逻辑正常执行,不报错,不被全局异常捕捉即可

以上为我遇到的问题根因和解决方案

另外还有种情况 也可能会报以上错误,就是表格列的  index的值重复

@ExcelProperty(value = "字段", index = 0)

以下是具体的分析步骤,可看,可略过。

我的代码情况:
1. controller内无返回值,因此不适用通常解决方案

public void downloadExt(HttpServletResponse response, DataQuery qry) throws IOException {
    try {
        // 查询数据 导出数据逻辑
    } catch (Exception e) {
            throw new BsException("文件下载失败");
    }
}


2. 再细看日志,报错内其他信息

org.springframework.http.converter.HttpMessageNotWritableException:
 No converter for [class com.xxx.dto.Result] with preset Content-Type 'application/vnd.ms-excel;charset=utf-8'


发现虽然接口代码没有返回值,但是 前端请求接口的时候 的确返回了 com.xxx.dto.Result 对象

3. 查看代码是否有全局异常处理

public class ExceptionHandler  implements GlobalExceptionHandler {

    @ExceptionHandler(Exception.class)
    @ResponseBody
    public Result errorException(Exception e) {
        log.error(e.getMessage(), e);
        return Result.fail(xxxx);
    }
 }


经查看,是全局异常处理捕捉了第1步的controller抛出的异常,然后返回了Result对象,导致下载报错。

但是 根因不在这里,而是在导出的controller代码里面报错了
public void downloadExt(HttpServletResponse response, DataQuery qry) throws IOException {
    try {
        **// 查询数据 导出数据逻辑**
    } catch (Exception e) {
            log.info(null, e);
            throw new BsException("文件下载失败");
    }
}

打出日志,查看日志,即可解决问题


 文章来源地址https://www.toymoban.com/news/detail-407845.html

到了这里,关于No converter for [class java.util.LinkedHashMap] with preset Content-Type ‘application/vnd.ms-excel;的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • No primary or default constructor found for interface java.util.List

    有时候我们前端会传一些 list 集合的参数,如果 list 集合的存储的类型是对象,通过 json 就可以封装,后端使用注解 @RequestBody 可以接收。如果是想传递通过装箱后的基本类型的 list ,需要使用到注解 @RequestParam。 后端没有使用 @RequestParam,swagger和postman传参数就会报这个错误

    2024年02月12日
    浏览(45)
  • java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to*****

    原报错代码写法: 报错如下: java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to com.* . 通过调试,发现是LinkedHashMap类型,而不是实体类 解决方法如下: 引入: import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; 调试: 问题解决。

    2024年02月04日
    浏览(42)
  • No primary or single unique constructor found for interface java.util.List

    1.问题描述 前端 请求的参数 是 query形式, 参数在url中 报错信息: 2.解决办法 controller中的 请求方法 参数 加上 @RequestParam

    2024年02月10日
    浏览(35)
  • java.util.LinkedHashMap cannot be cast to com.alibaba.fastjson.JSONObject

    接收postman 发送的请求,请求参数是 JSONObject 格式,需要获取其中的info对象 public void xxxxxx(@RequestBody JSONObject map) { // 先将info转成json格式的字符串,再转为JSON对象 JSONObject info = JSON.parseObject(JSON.toJSONString(map.get(“info”))); }

    2024年02月14日
    浏览(27)
  • “No primary or single unique constructor found for interface java.util.List”问题原因及解决

    问题原因: 这个错误通常出现在使用 MyBatis 查询结果映射时,MyBatis 无法找到适合的构造方法来将查询结果转换为指定的 Java 对象。具体来说,错误信息 \\\"No primary or single unique constructor found for interface java.util.List\\\" 意味着 MyBatis 在将查询结果转换为 List 类型对象时遇到了问题,

    2024年02月09日
    浏览(43)
  • Resolved [org.springframework.http.converter.HttpMessageNotWritableException: No converter for

    SpringBoot请求接口报错 这是我的实体类 可以发现我的实体类并没有set和get方法才会报错 HttpMediaTypeNotAcceptableException 修改之后添加set和get方法,可以成功运行

    2024年02月12日
    浏览(60)
  • 服务器报500错误 No primary or single unique constructor found for interface java.util.List

     批量删除日志记录 前端请求 URL:http://localhost:8080/system/log? ids=3,4,5 Method:DELETE 后端接口: 报错:java.lang.IllegalStateException: No primary or single unique constructor found for interface java.util.List 解决方法:添加@RequestParam注解 原因分析:  由于 Spring Boot 默认情况下会尝试使用请求参数的值来创建

    2024年02月07日
    浏览(34)
  • springboot传递List类型参数报错 No primary or single unique constructor found for interface java.util.List

    昨天在做毕设进行一对多插入的时候 出现了500错误 先看代码 mapper层代码 这里我是list集合进行一对多插入 控制层 前端  页面展示 然后页面显示500错误  查看控制台   报错:No primary or single unique constructor found for interface java.util.List     at org.springframework.beans.BeanUtils.getResol

    2024年02月11日
    浏览(41)
  • There is no getter for property named ‘xxx‘ in ‘class java.lang.xxxx‘解决办法

    报错最前面 内容 报错原因: 使用了自定义SQL,可能含有特殊的函数或者复杂的语法,因而不被JSqlParser(SQL解析器)所支持(无法添加租户id之类的字段),以致抛出了JSQLParserException。 解决方法: Failed to process, please exclude the tableName or statementId 翻译过来就是:处理失败,请将表名

    2024年02月04日
    浏览(47)
  • New Type Functions/Utilities for Dealing with Ranges in C++20

       类型萃取从字面意思上来说其实就是帮助我们挑选某个对象的类型,筛选特定的对象来做特定的事。可以先来回顾一下以前的写法。    到了C++20,我们有了ranges,我们有了更多强大的工具,可以说它们是处理ranges的强大工具,我们来看看具体的内容。    通过上图,

    2024年02月05日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包