Я сталкиваюсь с этой ошибкой при десериализации сообщения XML:
Нераспознанное поле "schemaLocation" (класс com.example.RefreshTokenType), не помеченное как игнорируемое (4 известных свойства: "author_party", "аудитория", "meta", "client_id"]).
<p:RefreshToken authorized_party="" client_id="15d8b31f4823aeaf21d3ba6ee87a4557"
xmlns:p="http://example.com/xsd/oauth/v2/oauth-spec.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://example.com/xsd/oauth/v2/oauth-spec.xsd oauth-v2-spec.xsd ">
<p:meta id="meta111" locale="*" name="x" value="x" />
</p:RefreshToken>
Справочная информация: я переключаюсь с org.eclipse.persistence.moxy на FasterXML / Jackson для объединения JSON и XML с помощью Jersey. Все работает нормально, пока я не получу сообщение 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);
}
а это фрагмент моего http://example.com/xsd/oauth/v2/oauth-spec.xsd:
<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>
Может ли кто-нибудь пролить свет?