Как включить проверку при разборке? [moxy 2.6.0]Проверка с помощью DynamicJAXBContext
Первое, что интересно, это то, что мне нужно поставить схему, которая должна быть уже в DynamicContext. Но даже с установкой схемы для немедленного восстановления это дает мне ошибку.
Я пытался использовать этот один:
final JAXBUnmarshaller unmarshaller = dynamicJAXBContext.createUnmarshaller();
//unmarshaller.setSchema();
final Schema schema = schemas.get(type);
unmarshaller.setSchema(schema);
unmarshaller.setValidating(true);
И это дает исключение. Похоже, часть, которая сломала это некоторые элементы, которые ставятся там от DynamicContext
Exception Description: An error occurred resolving the XML Schema.
Internal Exception: java.lang.NullPointerException
Exception [EclipseLink-25012] (Eclipse Persistence Services - 2.6.0.v20150309-bf26070): org.eclipse.persistence.exceptions.XMLMarshalException
Exception Description: An error occurred resolving the XML Schema.
Internal Exception: java.lang.NullPointerException
at org.eclipse.persistence.exceptions.XMLMarshalException.errorResolvingXMLSchema(XMLMarshalException.java:186)
at org.eclipse.persistence.oxm.schema.XMLSchemaClassPathReference.getURL(XMLSchemaClassPathReference.java:48)
at org.eclipse.persistence.oxm.XMLUnmarshaller.initializeSchemas(XMLUnmarshaller.java:211)
at org.eclipse.persistence.oxm.XMLUnmarshaller.setValidationMode(XMLUnmarshaller.java:155)
at org.eclipse.persistence.jaxb.JAXBUnmarshaller.setValidating(JAXBUnmarshaller.java:756)
Используя только setSchema, выполните эту работу. Благодаря! BTW Я уже установил схему, но выглядит как setValidatig() делает некоторые странные вещи и бросает исключение. BTW2: Я ожидал этого, пока я использовал динамический контекст, схема должна быть там по дизайну. – smolarek999
Нет, проверка по умолчанию отключена, не зависит, если у вас есть статические классы или динамический JAXBContext. Если вам нужно проверить, вы должны установитьSchema() – miran