小编Dan*_*lom的帖子

帮助排除JAXB解组NPE的故障

我正在使用一个我无法控制的API,它返回XML.基本上我有一些directory对象可以包含多个directoryfile没有被任何标签包装的对象,以及其他一些原始字段. file对象包含很少的原始字段,以及2个由tPathListoPathList标签包装的列表.

以下是此类XML的示例:

<hwreply>
  <result>1</result>
  <directory>
    <file>
      <created>DATE</created>
      <modified>DATE</modified>
      <name>STRING</name>
      <size>INT</size>
      <tPath>STRING</tPath>
      <oPath>STRING</oPath>
      <aPath>STRING</aPath>
      <tPathList> 
        <tPath>STRING</tPath>
        ...
      </tPathList>
      <oPathList> 
        <oPath>STRING</oPath>
        ...
      </oPathList>    
    </file>
    <file>...</file>
    ...
    <directory>...</directory>
    <directory>...</directory>
    ...
    <nEntries>5</nEntries>
    <created>DATE</created>
    <modified>DATE</modified>
  </directory>
</hwreply>
Run Code Online (Sandbox Code Playgroud)

我创建了目录和文件对象,以及作为根的OpenDirectory.我打电话的时候

OpenDirectory od = response.getEntity(OpenDirectory.class);

我得到以下异常:

Exception in thread "main" java.lang.NullPointerException
    at com.sun.xml.internal.bind.v2.runtime.reflect.Lister$CollectionLister.addToPack(Lister.java:290)
    at com.sun.xml.internal.bind.v2.runtime.reflect.Lister$CollectionLister.addToPack(Lister.java:254)
    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.Scope.add(Scope.java:106)
    at com.sun.xml.internal.bind.v2.runtime.property.ArrayERProperty$ReceiverImpl.receive(ArrayERProperty.java:195)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallingContext.endElement(UnmarshallingContext.java:507)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.SAXConnector.endElement(SAXConnector.java:145)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:601)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1782)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2938)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
at …
Run Code Online (Sandbox Code Playgroud)

jaxb nullpointerexception unmarshalling

7
推荐指数
1
解决办法
5855
查看次数

标签 统计

jaxb ×1

nullpointerexception ×1

unmarshalling ×1