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

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

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

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

    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日
    浏览(15)
  • No primary or single unique constructor found for interface java.util.List

    No primary or single unique constructor found for interface java.util.List

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

    2024年02月10日
    浏览(12)
  • 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日
    浏览(9)
  • “No primary or single unique constructor found for interface java.util.List”问题原因及解决

    “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日
    浏览(11)
  • Resolved [org.springframework.http.converter.HttpMessageNotWritableException: No converter for

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

    2024年02月12日
    浏览(10)
  • 服务器报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日
    浏览(14)
  • springboot传递List类型参数报错 No primary or single unique constructor found for interface java.util.List

    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日
    浏览(11)
  • There is no getter for property named ‘xxx‘ in ‘class java.lang.xxxx‘解决办法

    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日
    浏览(13)
  • New Type Functions/Utilities for Dealing with Ranges in C++20

    New Type Functions/Utilities for Dealing with Ranges in C++20

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

    2024年02月05日
    浏览(8)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包