Itt*_*tai 2 java spring jackson
我有一个spring beans配置文件,我将以下jackson类定义为spring bean.
出于某种原因,在运行时,filterProviderbean在没有map参数的情况下被实例化.
您可以从文档中看到它SimpleFilterProvider确实具有这样的构造函数并SimpleBeanPropertyFilter实现BeanPropertyFilter.
<bean id="productAttributesAndAdvertiserNameFilter" class="org.codehaus.jackson.map.ser.impl.SimpleBeanPropertyFilter" factory-method="filterOutAllExcept">
<constructor-arg value="name"/>
</bean>
<bean id="offerIdFilter" class="org.codehaus.jackson.map.ser.impl.SimpleBeanPropertyFilter" factory-method="filterOutAllExcept">
<constructor-arg value="id"/>
</bean>
<bean id="filterProvider" class="org.codehaus.jackson.map.ser.impl.SimpleFilterProvider">
<constructor-arg>
<util:map value-type="org.codehaus.jackson.map.ser.BeanPropertyFilter">
<entry key="onlyNameFilter" value-ref="productAttributesAndAdvertiserNameFilter" />
<entry key="onlyIdFilter" value-ref="offerIdFilter" />
</util:map>
</constructor-arg>
</bean>
Run Code Online (Sandbox Code Playgroud)
更新:
截至杰克逊1.9.5这个问题已修复(感谢Tatu)
任何帮助,将不胜感激.
看起来你发现了一个错误SimpleFilterProvider.
我刚下载了最新的源代码(1.9.4),构造函数定义如下:
public SimpleFilterProvider() {
_filtersById = new HashMap<String,BeanPropertyFilter>();
}
/**
* @param mapping Mapping from id to filter; used as is, no copy is made.
*/
public SimpleFilterProvider(Map<String,BeanPropertyFilter> mapping) {
_filtersById = new HashMap<String,BeanPropertyFilter>();
}
Run Code Online (Sandbox Code Playgroud)
取代mapping它的构造函数...(即javadoc不正确)
| 归档时间: |
|
| 查看次数: |
936 次 |
| 最近记录: |