【Json与Ajax交互报错解决】No converter found for return value of type: class com.github.pagehelper.PageInfo

简介: 【Json与Ajax交互报错解决】No converter found for return value of type: class com.github.pagehelper.PageInfo

 

Hello。你好呀,我是灰小猿,一个超会写bug的程序猿!

我今天又来修BUG了!!

image.gif编辑

事情是这样的:今天在整合SSM,读取数据库数据返回JSON字符串,并传递给前端界面Ajax进行交互的时候,向后台发送请求想要获取到返回的json数据,但是却出现了这样的错误,页面显示500:

image.gif编辑

HTTP Status 500 - org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.IllegalArgumentException: No converter found for return value of type: class com.github.pagehelper.PageInfo

我翻译了一下大概意思就是:

请求处理失败; 嵌套异常是java.lang.IllegalArgumentException:没有找到转换器的类型返回值:类com.github.pagehelper.PageInfo  

然而我的能够从数据库中读取到数据并且返回JSON字符串的代码是这样的:

/**
   * 返回的数据携带json字符串 需要导入jackson包 
   * @param pn
   * @param model
   * @return
   */
  @RequestMapping("/emps")
  @ResponseBody
  public PageInfo getEmpsWithJson(@RequestParam(value = "pn", defaultValue = "1") Integer pn) {
    // 传入需要跳转的页面以及展示的数据量
    PageHelper.startPage(pn, 5);
    // 获取到全部数据
    List<Employee> employees = employeeService.getAll();
    System.out.println("查询到的数据:");
    System.out.println(employees);
    // 使用pageinfo包装查询的数据,只需要将pageinfo交给页面即可
    // 传入数据,以及要显示多少页
    PageInfo page = new PageInfo(employees, 5);
    System.out.println("封装数据:");
//    System.out.println(page);
    return page;
  }

image.gif

我这里使用了@responseBody注解,该注解的作用就是会自动将返回数据封装成json格式,但是现在我的前台接收不到封装的json对象,查到的数据也无法封装成JSON对象,

最开始我找不到问题的解决,在网上找到了很多类似的错误,但是他们回答都模棱两可,并不能实际的解决问题,难道说程序员寻找bug的救命稻草的时候都是这样的嘛?

image.gif编辑

网上的解决基本上都是说导入json的依赖,但是现在使用Maven做项目的时候,在pom.xml中引入json的依赖坐标,一般都会自动生成相应的三个jar包,分别是

    • jackson-databind-x.x.x.jar
    • jackson-annotations-x.x.x.jar
    • jackson-core-x.x.x.jar

    小伙伴们看一下,如果说哪个小伙伴发现确实是缺少这三个jar中的其中一个,那么你去导入一下就行了,导入的时候可以到如下的maven仓库导入:

    https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind/2.7.4

    但是现在基本上都不会说是缺少上面的哪个jar包了,

    所以如果你并没有缺少jar包,那么应该咱们的问题就一样了!

    解决方案:

    对于No converter found for return value of type错误,原因一般都是jar包版本冲突的问题,和它冲突的jar包是spring的相关jar包,具体为什么冲突我也不知道........

    image.gif编辑

    我的spring的jar包的版本是4.3.7的,然后json的版本使用2.8.8的运行会报上述错误,

    所以解决就是更换其他版本的json的jar包,我建议的是更换低版本的,我更换了2.7.4的jar包,然后再运行就可以了,如果你的不行,你可以再换个其他版本的jar包试试,

    在pom.xml中导入json的jar包的依赖代码是:

    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.7.4</version>
    </dependency>

    image.gif

    接着重新启动tomcat,再运行就正确了!

    image.gif编辑

    如果大家还有其他解决方法,欢迎留言提出!

    我是灰小猿,我们下期见!

    image.gif编辑

    目录
    相关文章
    |
    1月前
    |
    前端开发 JavaScript Java
    使用Ajax进行异步交互:提升Java Web应用的用户体验
    【4月更文挑战第3天】Ajax技术在Web开发中提升UX,通过与服务器异步交互实现页面局部更新,无需完整刷新。核心组件包括XMLHttpRequest、JavaScript、HTML/CSS及服务器端脚本。在Java Web应用中,可使用原生JavaScript或框架如jQuery、AngularJS实现Ajax请求。Ajax减少页面刷新,实现实时数据更新,即时表单验证和动态UI,显著改善用户体验,是现代Web开发不可或缺的一部分。
    |
    2月前
    |
    JSON 前端开发 JavaScript
    |
    4月前
    |
    前端开发 JavaScript API
    Ajax技术的秘密揭秘:异步传输,高效交互
    Ajax技术的秘密揭秘:异步传输,高效交互
    |
    3月前
    |
    XML 机器学习/深度学习 JSON
    在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
    在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
    31 0
    在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
    |
    2天前
    |
    XML JSON API
    转Android上基于JSON的数据交互应用
    转Android上基于JSON的数据交互应用
    |
    2天前
    |
    XML JSON 前端开发
    Ajax – JSON入门指南
    Ajax – JSON入门指南
    |
    11天前
    |
    XML 前端开发 安全
    【专栏:HTML 进阶篇】HTML 表单验证与 AJAX 交互
    【4月更文挑战第30天】本文探讨了HTML表单验证和AJAX在现代网页开发中的重要性。HTML表单验证通过必填、数据格式和范围验证确保用户输入的准确性,而AJAX则实现异步通信,提供动态数据加载、局部更新和实时交互。两者的结合优化了表单处理,提高用户体验并减少服务器负担。实际应用包括在线注册、购物车系统和表单反馈。然而,开发者需注意浏览器兼容性、错误处理和安全性问题。掌握这些技术,能打造更智能、高效的网页应用,为用户提供更好的体验。在数字化时代,HTML表单验证和AJAX是网页创新与进步的关键。
    |
    11天前
    |
    SQL DataWorks 关系型数据库
    DataWorks操作报错合集之DataWorks在同步mysql时报错Code:[Framework-02],mysql里面有个json类型字段,是什么原因导致的
    DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
    29 0
    |
    11天前
    |
    XML 前端开发 JavaScript
    【PHP 开发专栏】PHP 与 Ajax 交互开发
    【4月更文挑战第30天】本文探讨了PHP与Ajax交互在Web开发中的应用。Ajax负责客户端的异步请求,PHP处理服务器端业务逻辑。两者结合实现高效、流畅的用户体验。文中阐述了Ajax的工作原理,PHP的角色,数据传输格式选择,并提供了发送Ajax请求、PHP处理请求的示例代码。实际应用包括实时数据更新、表单验证和动态内容加载。开发中需注意跨域、数据安全和性能优化。PHP与Ajax的结合将继续在Web开发中发挥重要作用。
    |
    20天前
    |
    JSON 运维 Kubernetes
    云效产品使用报错问题之流水线中配置了AppStack,构建时下载的制品内容为json字符串,如何解决
    本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。