热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

javaSpringMVC3.2.5无法识别的字段Jackson

我将SpringMVC升级到Spring3.2.5.我的一些剩余调用即使存在,也会返回无法识别的字段异常.这是错误.Resolvingexceptionfrom

我将Spring MVC升级到Spring 3.2.5.我的一些剩余调用即使存在,也会返回无法识别的字段异常.这是错误.

Resolving exception from handler [public com.app.common.web.datatables.DataTablesAjaxResponse com.app.cms.consultation.controller.impl.ActiveMedicationControllerImpl.ajaxSearchActiveMedication(java.lang.String,com.app.common.web.datatables.DataTablesAjaxRequest)]: org.springframework.http.converter.HttpMessageNotReadableException: Could not read JSON: Unrecognized field "sEcho" (class com.app.common.web.datatables.DataTablesAjaxRequest), not marked as ignorable (16 known properties: "displayStart", "sortedColumns", "searchQuery", "echo", "sortableColumns", "displayLength", "columnSearches", "dataProp", "hasRegex", "sortDirections", "searchColumns", "regexColumns" [truncated]])
at [Source: org.eclipse.jetty.server.HttpInput@4dc300ae; line: 1, column: 11] (through reference chain: com.app.common.web.datatables.DataTablesAjaxRequest["sEcho"]); nested exception is com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "sEcho" (class com.app.common.web.datatables.DataTablesAjaxRequest), not marked as ignorable (16 known properties: "displayStart", "sortedColumns", "searchQuery", "echo", "sortableColumns", "displayLength", "columnSearches", "dataProp", "hasRegex", "sortDirections", "searchColumns", "regexColumns" [truncated]])
at [Source: org.eclipse.jetty.server.HttpInput@4dc300ae; line: 1, column: 11] (through reference chain: com.app.common.web.datatables.DataTablesAjaxRequest["sEcho"])

这是课程:

import java.io.Serializable;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.codehaus.jackson.annotate.JsonProperty;
@JsonIgnoreProperties(ignoreUnknown = true)
public class DataTablesAjaxRequest implements Serializable {
private static final long serialVersiOnUID= 1L;
@JsonProperty("sEcho")
private String echo;
@JsonProperty("iColumns")
private int numColumns;
@JsonProperty("sColumns")
private String columns;
@JsonProperty("iDisplayStart")
private long displayStart;
@JsonProperty("iDisplayLength")
private int displayLength;
@JsonProperty("amDataProp")
private List dataProp;
@JsonProperty("sSearch")
private String searchQuery;
@JsonProperty("asSearch")
private List columnSearches;
@JsonProperty("bRegex")
private boolean hasRegex;
@JsonProperty("abRegex")
private List regexColumns;
@JsonProperty("abSearchable")
private List searchColumns;
@JsonProperty("iSortingCols")
private int sortingCols;
@JsonProperty("aiSortCol")
private List sortedColumns;
@JsonProperty("asSortDir")
private List sortDirections;
@JsonProperty("abSortable")
private List sortableColumns;
@JsonProperty("aoFilters")
private Map filters;
//Setters and getters

这是控制器.那就是调用API

@RequestMapping(value = AJAX_SEARCH_MED, method = RequestMethod.POST)
@ResponseBody
DataTablesAjaxResponse ajaxSearchActiveMedication(
@PathVariable(PATH_PIN) String pin,
@RequestBody DataTablesAjaxRequest request);

我正在使用Spring MVC 3.2.5和org.codehaus.jackson-jackson-mapper-asl版本1.9.9.正在使用的消息转换器是MappingJackson2HttpMessageConterter.在3.1版上一切正常,但是当我使用Spring 3.2.5时,会显示这些错误.

更新

这是请求标题

Host: localhost:8081
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0
Accept: application/json, text/Javascript, */*; q=0.01
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/json;charset=UTF-8
X-Requested-With: XMLHttpRequest
Referer: http://localhost:8081/cms/patient/2012010000000019/doctor-notes.html
Content-Length: 304
COOKIE: JSESSIOnID=1gyv2us4wq5fid9v26i59lz1p; __zlcid=
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

这是请求正文

{
"sEcho":1,
"iColumns":7,
"sColumns":"",
"iDisplayStart":0,
"iDisplayLength":10,
"amDataProp":[
"prescriptionDtlId",
"generic",
"brand",
"preparation",
"startDate",
"endDate",
"sig"
],
"aiSortCol":[
0
],
"asSortDir":[
"asc"
],
"iSortingCols":1,
"abSortable":[
false,
true,
true,
false,
true,
true,
false
],
"aoFilters":{
"generic":""
}
}

解决方法:

由于已将Spring MVC配置为可与MappingJackson2HttpMessageConverter一起使用,因此您需要使用Jackson 2.x批注(com.fasterxml.*),而不是Jackson 1.x批注.

您会看到Spring MVC从得到的异常中正确使用Jackson 2.x

(嵌套的异常是com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException)

如果您要坚持使用Jackson 1.x(您可能不应该这样做),则需要配置Spring MVC以与MappingJacksonHttpMessageConverter一起使用


推荐阅读
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
  • SpringMVC工作流程概述
    SpringMVC工作流程概述 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 本文介绍了Sencha Touch的学习使用心得,主要包括搭建项目框架的过程。作者强调了使用MVC模式的重要性,并提供了一个干净的引用示例。文章还介绍了Index.html页面的作用,以及如何通过链接样式表来改变全局风格。 ... [详细]
  • Asp.net Mvc Framework 七 (Filter及其执行顺序) 的应用示例
    本文介绍了在Asp.net Mvc中应用Filter功能进行登录判断、用户权限控制、输出缓存、防盗链、防蜘蛛、本地化设置等操作的示例,并解释了Filter的执行顺序。通过示例代码,详细说明了如何使用Filter来实现这些功能。 ... [详细]
  • 本文介绍了ASP.NET Core MVC的入门及基础使用教程,根据微软的文档学习,建议阅读英文文档以便更好理解,微软的工具化使用方便且开发速度快。通过vs2017新建项目,可以创建一个基础的ASP.NET网站,也可以实现动态网站开发。ASP.NET MVC框架及其工具简化了开发过程,包括建立业务的数据模型和控制器等步骤。 ... [详细]
  • 本文讨论了在ASP中创建RazorFunctions.cshtml文件时出现的问题,即ASP.global_asax不存在于命名空间ASP中。文章提供了解决该问题的代码示例,并详细解释了代码中涉及的关键概念,如HttpContext、Request和RouteData等。通过阅读本文,读者可以了解如何解决该问题并理解相关的ASP概念。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • 本文介绍了一种处理AJAX操作授权过期的全局方式,以解决Asp.net MVC中Session过期异常的问题。同时还介绍了基于WebImage的图片上传工具类。详细内容请参考链接:https://www.cnblogs.com/starluck/p/8284949.html ... [详细]
  • Python开源库和第三方包的常用框架及库
    本文介绍了Python开源库和第三方包中常用的框架和库,包括Django、CubicWeb等。同时还整理了GitHub中最受欢迎的15个Python开源框架,涵盖了事件I/O、OLAP、Web开发、高性能网络通信、测试和爬虫等领域。 ... [详细]
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
  • wpf+mvvm代码组织结构及实现方式
    本文介绍了wpf+mvvm代码组织结构的由来和实现方式。作者回顾了自己大学时期接触wpf开发和mvvm模式的经历,认为mvvm模式使得开发更加专注于业务且高效。与此同时,作者指出mvvm模式相较于mvc模式的优势。文章还提到了当没有mvvm时处理数据和UI交互的例子,以及前后端分离和组件化的概念。作者希望能够只关注原始数据结构,将数据交给UI自行改变,从而解放劳动力,避免加班。 ... [详细]
  • 本文讨论了在shiro java配置中加入Shiro listener后启动失败的问题。作者引入了一系列jar包,并在web.xml中配置了相关内容,但启动后却无法正常运行。文章提供了具体引入的jar包和web.xml的配置内容,并指出可能的错误原因。该问题可能与jar包版本不兼容、web.xml配置错误等有关。 ... [详细]
author-avatar
专业长膘
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有