在 MOXy 中使用 Binder 实现时遇到问题。
这是输入 XML 文档 (input.xml)
<?xml version="1.0" encoding="utf-8"?>
<root>
<unmapped />
</root>
现在,这里是用于将 XML 解组为 Binder 实例然后从相应的 Java 对象更新 XML 的源代码:
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)