【发布时间】:2012-02-03 18:31:46
【问题描述】:
我遇到了 JAXB 解组的问题。我想我已经正确编码了,但是我的未编组对象返回空参数。因此,我假设在解组时,JAXB 没有看到它所期望的适当的 XML 结构。但是,我没有收到任何错误消息或抛出任何异常。
是否可以逐步完成解组过程,以准确查看它在哪里/为什么无法填充我的对象?
实际的解组代码相当普通:
public <T> T unmarshall(Node node, Class<T> clazz) throws JAXBException {
// Creating an unmarshaller
Unmarshaller u = JAXBContext.newInstance(clazz).createUnmarshaller();
// unmarshal an instance node into Java content
return clazz.cast(u.unmarshal(node, clazz).getValue());
}
但是,当我调用它时,我得到了一个 clazz 类型的对象返回(如预期的那样),但未填充。
我试图解组的 DOM 对象是由第三方 API 生成的。我已经在解组时遇到了一些非常奇怪的行为,这就是为什么我希望能够调试该过程。例如,如果我尝试解组 DOM 对象中的子元素(即:doc.getByElementName("myElement").item(0)),它会静默失败。但是,如果我将文档转换为字符串,然后将其重新导入新文档,则可以正常转换。
我开始感到很沮丧,不知道如何调试这个问题。
感谢您的任何见解!
埃里克
【问题讨论】:
标签: debugging jaxb unmarshalling