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

将XML解组到具有@XMLElementWrapper的Java对象时出现空指针异常

郭和硕
2023-03-14

我使用JAXB解组XML文件Java对象。

这个XML包含一个列表。例如

<items>
<item>
...
</item>
...
</items>

Java类为items提供@xmlementwrapper

@XMLElementWrapper(name="items")
@XMLElement(name="item")
private List<Item> items;

当我试图解组时,会出现空指针异常

 java.lang.NullPointerException
          at sun.reflect.UnsafeFieldAccessorImpl.ensureObj(UnsafeFieldAccessorImpl.java:54)
          at sun.reflect.UnsafeObjectFieldAccessorImpl.get(UnsafeObjectFieldAccessorImpl.java:36)
          at java.lang.reflect.Field.get(Field.java:379)
          at com.sun.xml.bind.v2.runtime.reflect.Accessor$FieldReflection.get(Accessor.java:185)
          at com.sun.xml.bind.v2.runtime.reflect.Lister$CollectionLister.startPacking(Lister.java:249)
          at com.sun.xml.bind.v2.runtime.reflect.Lister$CollectionLister.startPacking(Lister.java:224)
          at com.sun.xml.bind.v2.runtime.unmarshaller.Scope.add(Scope.java:78)
          at com.sun.xml.bind.v2.runtime.property.ArrayERProperty$ReceiverImpl.receive(ArrayERProperty.java:150)
          at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.endElement(UnmarshallingContext.java:404)
          at com.sun.xml.bind.v2.runtime.unmarshaller.SAXConnector.endElement(SAXConnector.java:125)
          at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
          at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)
          at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
          at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
          at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
          at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
          at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
          at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
          at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:200)
          at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:173)
          at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:157)
          at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:214)
          at com.amazon.epubs.edition.manifest.serializer.JAXBMarshaller.unmarshall(JAXBMarshaller.java:45)
          at amazon.PeriodicalsManagementService.handler.PreviewPublicationHandler.getFolioRenditions(PreviewPublicationHandler.java:293)
          at amazon.PeriodicalsManagementService.handler.PreviewPublicationHandler.doMainProcessing(PreviewPublicationHandler.java:176)
          ... 19 more

共有1个答案

赵俊侠
2023-03-14

尝试使用List的包装类

@XmlRootElement
class Items {
    @XmlElement
    List<Item> item;
}

然后执行项目unMarshall

 类似资料:
  • 我目前正试图使用JAXB将一些XML解组到一个java对象中,我得到了一个奇怪的空指针异常。这只是解组时的一个问题。我可以很好地处理这些类。以下是相关的代码片段(不相关的部分用“…”表示): > JAXB根元素: 根元素的Images子元素: 解组XML的逻辑: 最后,我试图散集的XML(知道这个xml文件实际上是使用JAXB封送器生成的,运行起来没有任何问题可能会有所帮助): 好的,这就是所有相

  • 我一直试图将xml(作为字符串)解组到一个对象,但它返回了一个NullPointerException错误。我花了一周时间寻找解决方案,但似乎什么都没用。我已经多次修改了“unmarshallpacs008”方法和“Spienvelessage”类,尝试了我在论坛上找到的其他东西。 在调试代码时,我看到错误发生在“unmarshaller.unmarshal”点,在该点上,“SpinevelMes

  • 问题内容: 我正在尝试制作2D切片游戏,当制作包含切片的阵列时,我得到了NullPointerException,这是一些代码。抱歉,如果格式不正确,请第一时间 公共类世界{ 然后在本课程中被称为(我相信这是问题的一部分) 公共类worldDraw { 问题答案: 创建对象数组时,将创建引用数组,但未分配引用。在尝试使用它们之前,必须先执行此操作。认为它类似于创建鸡蛋纸箱。在先将鸡蛋装满纸箱之前,

  • 问题内容: 此代码导致空指针异常。我不知道为什么: 我已经在调试器中检查了它,所有局部变量都不为空。怎么会这样呢?BiMap来自Google Collections。 问题答案: 空指针异常是将的结果拆箱的结果。如果不包含键,则返回“ of type” 。假设分配是给引用的,Java将值拆箱到中,导致空指针异常。 您应该检查或用作局部变量类型,以免取消装箱并采取相应措施。适当的机制取决于您的上下文

  • 问题内容: 我需要解析一个Xml文档并将值存储在文本文件中,当我解析普通数据(如果所有标签都包含数据)时,它的工作状况很好,但是如果任何标签中都没有数据,则它会抛出“ NullpointerException”这样做,为避免出现空指针异常,请使用示例代码Sample xml来建议我: 码: 问题答案: 只需检查对象是否不是: