java - 如何使用 spring xml 将 FAIL_ON_UNKNOWN_PROPERTIES 设置为 false

标签 java xml spring javabeans

我正在尝试将收到的 json 响应反序列化为对象。我收到以下错误:

org.springframework.http.converter.HttpMessageNotReadableException:无法读取 JSON:无法识别的字段“已初始化”

我知道这个initialized字段来自哪里,但我目前无法编辑对象类。相反,我想通过编辑对象映射器来关闭遇到类中不存在的字段时引发的异常:DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)

我正在使用 RestTemplate 来调用 URL。我使用的restTemplate实例是一个bean,因此是一个单例,它是在一个xml文件中创建的,如下所示:

<bean id="restTemplate" class="org.springframework.web.client.RestTemplate"
      p:interceptors-ref="rest-template-client-interceptors"/>

问题是我不确定如何通过 xml 构造 RestTemplate 将 DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES 设置为 false。我是 Spring 新手,所以不知道从哪里开始。

有什么建议吗?

最佳答案

您必须配置 RestTemplate 消息转换器 (MappingJacksonHttpMessageConverter) 才能使用自定义对象映射器。

<bean id="restTemplate" class="org.springframework.web.client.RestTemplate">

    <property name="messageConverters">
        <list>
            <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
                <property name="objectMapper" ref="customObjectMapper"/>
            </bean>
        </list>
    </property>
</bean>    
<bean id="customObjectMapper" class="org.codehaus.jackson.map.ObjectMapper"/>
<bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
    <property name="targetObject" ref="customObjectMapper" />
    <property name="targetMethod" value="configure" />
    <property name="arguments"> 
        <list>
            <value type="org.codehaus.jackson.map.DeserializationConfig.Feature">FAIL_ON_UNKNOWN_PROPERTIES</value>
            <value>false</value>
        </list>
    </property>
</bean>

关于java - 如何使用 spring xml 将 FAIL_ON_UNKNOWN_PROPERTIES 设置为 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58631554/

相关文章:

java - 临时编码的工作流程

java - 获取 Spring Bean 的类详细信息

javascript - 在javascript中访问XML文件的值

java - 如何在 Hibernate 不生成任何表的情况下使用 Hibernate Envers (@Audited)

具有关系的实体的 Spring 数据休息状态 500

java - Gradle 多模块依赖

javascript - Java 中的 List<String> 到 JavaScript 中的 List

java - 如何在定制的 AOP 顾问程序中获取 HttpServletRequest?

c - 将 XML 数据导入 Access 时出现问题

java - 获取特定节点内的所有元素