У меня возникла проблема при использовании реализации Binder в MOXy.
Вот входной XML-документ (input.xml)
<?xml version="1.0" encoding="utf-8"?>
<root>
<unmapped />
</root>
А теперь вот исходный код, используемый для демаршалирования XML в экземпляр Binder и последующего обновления XML из соответствующего объекта Java:
JAXBContext context = JAXBContext.newInstance(Input.class);
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
Document document = builder.parse(new File("input.xml"));
Binder<Node> binder = context.createBinder(Node.class);
Input input = (Input) binder.unmarshal(document);
binder.updateXML(input);
В итоге очень простой файл класса Input:
@XmlRootElement(name = "root")
public class Input {
@XmlAnyElement
protected Object[] elements;
}
При вызове метода updateXML()
возникает следующее исключение:
java.lang.NullPointerException
at org.eclipse.persistence.internal.jaxb.DomHandlerConverter.convertObjectValueToDataValue(DomHandlerConverter.java:97)