当前位置: 首页 > 知识库问答 >
问题:

JAXB解组返回空对象

司寇书
2023-03-14

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

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

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

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

共有2个答案

李鸿
2023-03-14

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

章绪
2023-03-14

原因在本文中提到:JAXB不调用Setter方法。

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

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

 类似资料:
  • 我想解封一个包含混合内容的XML文件。我在stackoverflow上发现了一个似乎合适的线程(JAXB-@XmlMixed用于读取@XmlValue和@XmlElement),其中用户bdoughan定义了3个用例来处理混合内容。 第三个用例将标签之间的文本保存在单个 String 变量中,并将元素保存在 List 中。这就是我想要的。不幸的是,我无法让它工作,线程很旧,也许已经过时了。 我已经

  • 在不使用getter和setter的情况下,JAXB可以正确地解组所提供的JSON。 null和“null”是完全不同的东西,但是我不想在POJO中包含这个字段,并且我必须忽略这些null值。 编辑

  • 嗨,我想使用maven依赖项使用un-marshaling来获取嵌套xml的值,但最终的输出是返回给我空值。我使用了maven项目中的3个包和vehicle.xml包含了car的值,在获取这些值后,我必须将它们插入到access数据库中 我想在最终输出返回null时获得这些值

  • 我有 和Xlink类,该类在内联变量中工作良好。 对于的XML输入 并且子课程拒绝被取消注册(没有任何异常被抛出)。 注:不幸的是,MOXy不是一个选项。 编辑:新编组对象 Edit2:在对测试对象进行了一些解组和编组的实验之后,我发现我需要在内容的标题中定义xmlns名称空间,以便与类似问题在于,我从一个包装类中获取Course元素,该包装类由resteasy解析出来。因此,生成的类不会携带名称

  • 在解组xml文档时,JAXB无法解组具有替换组名称的复杂类型。doucment带有替换名,JAXB解组进程无法将数据与实际元素绑定。最后,我得到一个空对象,它的数据到达xml文档中。这是JAXB中的错误还是我在这里做错了什么? 注意:下面的模式清楚地定义了有问题的复杂元素类型ENBFunction的替代名称。并且在解编组"xn: ManagedElementOptionallyContainedN

  • 问题内容: 这是我的xml,需要将其转换为Java。我用过jaxb 并引发以下异常javax.xml.bind.UnmarshalException:意外元素(uri:“ http://www.ae.com/Event/Load ”,本地:“ Order”)。期望的元素是<{} lm:Order> 这是我的解组代码 订购Pojo班 您能否也帮助我阅读,当前正在读取文件,需要读取为XML Strin