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)