JAXB解组返回空对象

JAXB解组返回空对象,jaxb,unmarshalling,Jaxb,Unmarshalling,当在testng单元testcase中运行时,JAXB将XML文件解组到对象中工作良好 当使用相同的代码在另一个进程中解组相同的XML文件时,我得到的是一个空对象。我可以验证是否为XML文档中的每个元素创建了对象,是否调用了所有适配器。在解组器中设置事件处理程序,但没有验证问题。当我设置xmlns属性和前缀时,即使返回空对象,行为也略有不同 我看了好几篇文章,但都无法与我面临的问题联系起来 请建议我应该从哪里开始寻找问题。解组时是否必须指定架构?本文中提到了原因: 已确认正在调用列表的get方法

当在testng单元testcase中运行时,JAXB将XML文件解组到对象中工作良好

当使用相同的代码在另一个进程中解组相同的XML文件时,我得到的是一个空对象。我可以验证是否为XML文档中的每个元素创建了对象,是否调用了所有适配器。在解组器中设置事件处理程序,但没有验证问题。当我设置xmlns属性和前缀时,即使返回空对象,行为也略有不同

我看了好几篇文章,但都无法与我面临的问题联系起来


请建议我应该从哪里开始寻找问题。解组时是否必须指定架构?

本文中提到了原因:

已确认正在调用列表的get方法并已填充该方法


将列表替换为数组,问题已解决。

本文中提到了原因:

已确认正在调用列表的get方法并已填充该方法


用数组替换了列表,问题就解决了。

JAXB的优点在于它不调用setter,而是使用与getter相同的
list
。在从XSD生成JAXB类的情况下;您甚至可以注意到,具有
maxOccurs=unboundRequired=true
的元素将根本没有setter。

JAXB的优点在于它不调用setter,而是使用与getter相同的
列表。在从XSD生成JAXB类的情况下;您甚至可以注意到
maxOccurs=unboundRequired=true
的元素根本没有setter