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相关推荐

  1. java8新特性-stream对map集合进行过滤的方法

    java8新特性-stream对map集合进行过滤的方法 stream对map集合进行过滤的方法

  2. ASP.NET Core Web API基于RESTFul APIs的集合结果过滤和分页

    译者荐语:如何在RESTFul APIs中进行集合结果分页?还是用客户端来拼接链接地址么? 原文来自互联网,由长沙DotNET技术社区[邹溪源]翻译.如译文侵犯您的版权,请联系小编,小编将在24小时内 ...

  3. 《精通特征工程》学习笔记(2):文本数据:扁平化、过滤和分块

    1.元素袋:将自然文本转换为扁平向量 1.1 词袋 词袋将一个文本文档转换为一个扁平向量.之所以说这个向量是"扁平"的,是因为它 文本数据:扁平化.过滤和分块|35不包含原始文本中 ...

  4. python不属于字符串的是_【python cookbook】python过滤字符串中不属于指定集合的字符...

    1 #!/usr/bin/python 2 #-*- coding: utf-8 -*- 3 4 #过滤字符串中不属于指定集合的字符 5 6 importstring7 8 #生成所有字符的可复用的字 ...

  5. List集合中数据用set集合去重复,用set集合去重复数据重写了equals还是没成功!

    [用set集合去重复数据,重写equals还是不成功的问题解决思路在文章最后] 需求描述: 因业务需要,通过复杂的代码逻辑从数据库取出数据放入List集合中,涉及多次从访问数据库取出数据放入List集 ...

  6. Java8的 stream对list数据去重,使用filter()过滤列表,list转map,joining使用,统计分组合并

    使用 Java8的 stream对list数据去重,使用filter()过滤列表,list转map 1.去除List中重复的String List unique = list.stream().dis ...

  7. EasyExcel:读取Excel数据到List集合中

    1. pom.xml 添加依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyex ...

  8. 实体对象集合中根据实体对象的某一属性进行大小排序

    背景 代码实现 思路简述 效果图示 背景 今天我的领导跟我提了一个小小的建议,我觉得很不错.我有这么一个界面,显示的是小车的电量信息,界面很简单,简单的由listView控件展示数据.界面的小车电量信 ...

  9. R语言dplyr包数据过滤(filter)基于not in规则实战(not in Filter):基于单数据列not in规则过滤数据行、基于多数据列not in规则过滤数据行

    R语言dplyr包数据过滤(filter)基于not in规则实战(not in Filter):基于单数据列not in规则过滤数据行.基于多数据列not in规则过滤数据行 目录

  10. WCF技术剖析之十四:泛型数据契约和集合数据契约(下篇)

    [爱心链接:拯救一个25岁身患急性白血病的女孩[内有苏州电视台经济频道<天天山海经>为此录制的节目视频(苏州话)]]在.NET中,所有的集合都实现了IEnumerable接口,比如Arra ...

最新文章

  1. oracle之 手动创建 emp 表 与 dept 表
  2. 聊聊离京后的一些感受
  3. 依赖注入之Autofac使用总结
  4. c、c++、Java和gcc写Hello World
  5. CSS 文字显示在图片的中间
  6. JavaScript中OOP——面向对象中的继承/闭包
  7. 2017c语言考核册答案,2017年电大《C语言程序设计》形成性考核册答案.doc
  8. query builder python-elasticsearch返回指定字段
  9. 学习Node.js并开始在浏览器之外执行JavaScript
  10. toj 4319 盒子游戏
  11. python树代码_浅析AST抽象语法树及Python代码实现
  12. php课后题,知到PHP语言程序设计课后习题答案
  13. Java SE 9:不可变Map和Map.Entry的工厂方法
  14. 主板 稳定测试软件,拷机必不可少 编辑推荐几款稳定性测试软件
  15. 三方接口短信验证码怎么选择好的平台?
  16. java.lang.NoClassDefFoundError: Could not initialize class com.cyj.util.Jdbc
  17. QCC3040---Panic types
  18. 量化金融模型ARCH模型官方例程(中文翻译版)
  19. 拓新药业301089
  20. 图片文字识别,手机里的图片转文字的方法

热门文章

  1. 项目中出现npm WARN locking errno: -4048, npm WARN locking code: ‘EPERM‘, npm WARN locking syscall:
  2. 问题:计算给定年月日的日期是星期几(泽勒一致性)
  3. 基于长短期记忆神经网络和卷积神经网络(convLSTM)的股票涨跌预测模型(附代码)
  4. 机器学习中的参数与超参数之间的区别
  5. python化学公式配平_如何用矩阵知识配平化学方程式?
  6. 董文永武汉大学计算机学院,武汉大学计算机学院博士生导师简介:董文永
  7. C语言实现1/1-1/2+1/3-...-1/100求和
  8. 2016-2017 ACM-ICPC, South Pacific Regional Contest (SPPC 16)
  9. Linux中命令行中EOF的用法
  10. 【网络编程】传输层重点协议详解(UPD+TCP)