jersey 过滤,Jersey Jackson数据实体在集合上过滤JsonMappingException
I have an issue when trying to put in place the “selectable entity filtering”. I have an Abstract class like following one:
// In your Pom
org.glassfish.jersey.ext
jersey-entity-filtering
....
//Somewhere in resourceConfig: Register entity-filtering selectable feature.
register(SelectableEntityFilteringFeature.class);
property(SelectableEntityFilteringFeature.QUERY_PARAM_NAME, "select");
register(JacksonFeature.class);
…..
Before registering the “selectable entity filtering” all was working fine, I tested that a lot.
And after registering “selectable entity filtering” I have the following error:
[2016-02-15 17:25:36] - DEBUG EntityMapper:116 [http-bio-8080-exec-3] Preparing query INSERT INTO
[2016-02-15 17:25:43] - ERROR JsonMappingExceptionMapper:29 [http-bio-8080-exec-3] Malformed Json!
com.fasterxml.jackson.databind.JsonMappingException: Can not resolve PropertyFilter with id 'java.util.HashMap'; no FilterProvider configured
at com.fasterxml.jackson.databind.ser.std.StdSerializer.findPropertyFilter(StdSerial izer.java:285)
at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:459)
at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:29)
at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:129)
at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:851)
at com.fasterxml.jackson.jaxrs.base.ProviderBase.writeTo(ProviderBase.java:650)
at org.glassfish.jersey.jackson.internal.FilteringJacksonJaxbJsonProvider.writeTo(FilteringJacksonJaxbJsonProvider.java:135)
at org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor.invokeWriteTo(WriterInterceptorExecutor.java:265)
at org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor.aroundWriteTo(WriterInterceptorExecutor.java:250)
at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:162)
at org.glassfish.jersey.server.internal.JsonWithPaddingInterceptor.aroundWriteTo(JsonWithPaddingInterceptor.java:106)
at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:162)
at org.glassfish.jersey.server.internal.MappableExceptionWrapperInterceptor.aroundWriteTo(MappableExceptionWrapperInterceptor.java:86)
It seems that the issue comes from the
StdSerializer.findPropertyFilter(StdSerializer.java:285)
protected PropertyFilter findPropertyFilter(SerializerProvider provider,
Object filterId, Object valueToFilter)
throws JsonMappingException
{
FilterProvider filters = provider.getFilterProvider();
// Not ok to miss the provider, if a filter is declared to be needed.
if (filters == null) {
throw new JsonMappingException("Can not resolve PropertyFilter with id '"+filterId+"'; no FilterProvider configured");
}
PropertyFilter filter = filters.findPropertyFilter(filterId, valueToFilter);
// But whether unknown ids are ok just depends on filter provider; if we get null that's fine
return filter;
}
I don’t understand why the filtering is activated even in POST requests ? The strange thing is I didn’t put the “select” query parameter in the request!
Could you please help ?
解决方案
It seems that when you are using the SelectableEntityFilteringFeature and if you are putting Collection as an Entity in Response then you will get a JsonMappingException. For me it is a bug. The work around is you should encapsulate your collection into GenericEntity to be able to be serialized by Jersey-Jackson.
return Response.status(Status.OK)
.entity(new GenericEntity>(entityIDs) {}).build();
// Use GenericEntity to avoid JsonMappingException because of the new flow with Filtering
jersey 过滤,Jersey Jackson数据实体在集合上过滤JsonMappingException相关推荐
- java8新特性-stream对map集合进行过滤的方法
java8新特性-stream对map集合进行过滤的方法 stream对map集合进行过滤的方法
- ASP.NET Core Web API基于RESTFul APIs的集合结果过滤和分页
译者荐语:如何在RESTFul APIs中进行集合结果分页?还是用客户端来拼接链接地址么? 原文来自互联网,由长沙DotNET技术社区[邹溪源]翻译.如译文侵犯您的版权,请联系小编,小编将在24小时内 ...
- 《精通特征工程》学习笔记(2):文本数据:扁平化、过滤和分块
1.元素袋:将自然文本转换为扁平向量 1.1 词袋 词袋将一个文本文档转换为一个扁平向量.之所以说这个向量是"扁平"的,是因为它 文本数据:扁平化.过滤和分块|35不包含原始文本中 ...
- python不属于字符串的是_【python cookbook】python过滤字符串中不属于指定集合的字符...
1 #!/usr/bin/python 2 #-*- coding: utf-8 -*- 3 4 #过滤字符串中不属于指定集合的字符 5 6 importstring7 8 #生成所有字符的可复用的字 ...
- List集合中数据用set集合去重复,用set集合去重复数据重写了equals还是没成功!
[用set集合去重复数据,重写equals还是不成功的问题解决思路在文章最后] 需求描述: 因业务需要,通过复杂的代码逻辑从数据库取出数据放入List集合中,涉及多次从访问数据库取出数据放入List集 ...
- Java8的 stream对list数据去重,使用filter()过滤列表,list转map,joining使用,统计分组合并
使用 Java8的 stream对list数据去重,使用filter()过滤列表,list转map 1.去除List中重复的String List unique = list.stream().dis ...
- EasyExcel:读取Excel数据到List集合中
1. pom.xml 添加依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyex ...
- 实体对象集合中根据实体对象的某一属性进行大小排序
背景 代码实现 思路简述 效果图示 背景 今天我的领导跟我提了一个小小的建议,我觉得很不错.我有这么一个界面,显示的是小车的电量信息,界面很简单,简单的由listView控件展示数据.界面的小车电量信 ...
- R语言dplyr包数据过滤(filter)基于not in规则实战(not in Filter):基于单数据列not in规则过滤数据行、基于多数据列not in规则过滤数据行
R语言dplyr包数据过滤(filter)基于not in规则实战(not in Filter):基于单数据列not in规则过滤数据行.基于多数据列not in规则过滤数据行 目录
- WCF技术剖析之十四:泛型数据契约和集合数据契约(下篇)
[爱心链接:拯救一个25岁身患急性白血病的女孩[内有苏州电视台经济频道<天天山海经>为此录制的节目视频(苏州话)]]在.NET中,所有的集合都实现了IEnumerable接口,比如Arra ...
最新文章
- oracle之 手动创建 emp 表 与 dept 表
- 聊聊离京后的一些感受
- 依赖注入之Autofac使用总结
- c、c++、Java和gcc写Hello World
- CSS 文字显示在图片的中间
- JavaScript中OOP——面向对象中的继承/闭包
- 2017c语言考核册答案,2017年电大《C语言程序设计》形成性考核册答案.doc
- query builder python-elasticsearch返回指定字段
- 学习Node.js并开始在浏览器之外执行JavaScript
- toj 4319 盒子游戏
- python树代码_浅析AST抽象语法树及Python代码实现
- php课后题,知到PHP语言程序设计课后习题答案
- Java SE 9:不可变Map和Map.Entry的工厂方法
- 主板 稳定测试软件,拷机必不可少 编辑推荐几款稳定性测试软件
- 三方接口短信验证码怎么选择好的平台?
- java.lang.NoClassDefFoundError: Could not initialize class com.cyj.util.Jdbc
- QCC3040---Panic types
- 量化金融模型ARCH模型官方例程(中文翻译版)
- 拓新药业301089
- 图片文字识别,手机里的图片转文字的方法
热门文章
- 项目中出现npm WARN locking errno: -4048, npm WARN locking code: ‘EPERM‘, npm WARN locking syscall:
- 问题:计算给定年月日的日期是星期几(泽勒一致性)
- 基于长短期记忆神经网络和卷积神经网络(convLSTM)的股票涨跌预测模型(附代码)
- 机器学习中的参数与超参数之间的区别
- python化学公式配平_如何用矩阵知识配平化学方程式?
- 董文永武汉大学计算机学院,武汉大学计算机学院博士生导师简介:董文永
- C语言实现1/1-1/2+1/3-...-1/100求和
- 2016-2017 ACM-ICPC, South Pacific Regional Contest (SPPC 16)
- Linux中命令行中EOF的用法
- 【网络编程】传输层重点协议详解(UPD+TCP)