Java “如何修复无法识别的字段”;schemaLocation“;对XML文件进行解组时
我在反序列化XML消息时遇到此错误: 无法识别的字段“schemaLocation”(class com.example.RefreshTokenType),未标记为可忽略(4个已知属性:“授权方”、“受众”、“元”、“客户端id”)Java “如何修复无法识别的字段”;schemaLocation“;对XML文件进行解组时,java,xml,jackson,Java,Xml,Jackson,我在反序列化XML消息时遇到此错误: 无法识别的字段“schemaLocation”(class com.example.RefreshTokenType),未标记为可忽略(4个已知属性:“授权方”、“受众”、“元”、“客户端id”) 背景是我正在从org.eclipse.persistence.moxy切换到FasterXML/Jackson,以便用Jersey处理JSON和XML。在我得到XML消息之前,一切都正常,包括schemaLocation 以下是我的反序列化设置: public
背景是我正在从org.eclipse.persistence.moxy切换到FasterXML/Jackson,以便用Jersey处理JSON和XML。在我得到XML消息之前,一切都正常,包括schemaLocation
以下是我的反序列化设置:
public static void enableDeserializationSetting(ObjectMapper reader) {
Set<Class<?>> jaxbClasses = collectJaxbAnnotatedClasses();
reader.registerModule(new JaxbAnnotationModule());
reader.enable(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY);
reader.registerSubtypes(jaxbClasses);
}
publicstaticvoid启用反序列化设置(ObjectMapper读取器){
设置您可以在对象映射器中禁用该功能:
mapper.disable(反序列化功能。未知属性失败);
或者,您可以使用设置为true
:
@JsonIgnoreProperties(ignoreUnknown=true)
公共类刷新令牌类型{
...
}
嘿,我猜你的意思是说禁用未知属性上的FAIL,对吧?@pirent是的,disable:)Ciao,我想真正的问题是在其他地方。因为当我禁用该属性时,它对我仍然不起作用。但是当我在反序列化上下文上调试handleUnknownProperty时,它会检查该属性是否禁用。所以你的nswer应该会有帮助,但我可能在某个地方误解了它,因此配置不会产生任何效果。但是非常感谢。
public static void enableDeserializationSetting(ObjectMapper reader) {
Set<Class<?>> jaxbClasses = collectJaxbAnnotatedClasses();
reader.registerModule(new JaxbAnnotationModule());
reader.enable(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY);
reader.registerSubtypes(jaxbClasses);
}
<xs:element name="RefreshToken" type="RefreshTokenType"/>
<xs:complexType name="RefreshTokenType">
<xs:sequence>
<xs:element name="meta" type="MetaDataType" minOccurs="0" maxOccurs="unbounded"></xs:element>
<xs:element name="audience" type="xs:string" minOccurs="0" maxOccurs="unbounded"></xs:element> <!-- mandated by OpenID Connect spec (aud) -->
</xs:sequence>
<xs:attribute name="authorized_party" type="xs:string" use="optional" />
<xs:attribute name="client_id" type="xs:string" use="optional" />
</xs:complexType>