Java 如何调试此NullPointerException
使用JAXB将XML解组为Java对象时出错:Java 如何调试此NullPointerException,java,jaxb,Java,Jaxb,使用JAXB将XML解组为Java对象时出错: java.lang.NullPointerException at com.sun.xml.internal.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$1.parse(RuntimeBuiltinLeafInfoImpl.java:188) at com.sun.xml.internal.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$1.
java.lang.NullPointerException
at com.sun.xml.internal.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$1.parse(RuntimeBuiltinLeafInfoImpl.java:188)
at com.sun.xml.internal.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$1.parse(RuntimeBuiltinLeafInfoImpl.java:186)
at com.sun.xml.internal.bind.v2.runtime.reflect.TransducedAccessor$CompositeTransducedAccessorImpl.parse(TransducedAccessor.java:230)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.LeafPropertyLoader.text(LeafPropertyLoader.java:50)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallingContext.text(UnmarshallingContext.java:483)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.InterningXmlVisitor.text(InterningXmlVisitor.java:78)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.StAXEventConnector.handleCharacters(StAXEventConnector.java:173)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.StAXEventConnector.bridge(StAXEventConnector.java:127)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:392)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:368)
我怎样才能找到原因
更多详情:
我试图解析的xml的一部分是:
<member_resources>
<__field_location__>
<directive>
sun-sat
</directive>
<file>
null
</file>
<line>
0
</line>
</__field_location__>
<sun-sat>
00:00-24:00 tester2
</sun-sat>
<__field_location__>
<directive>
isLine
</directive>
<file>
null
</file>
<line>
0
</line>
</__field_location__>
<isLine>
true
</isLine>
</member_resources>
在导致此情况的事件中停止时,我得到:
next event <__field_location__>
next event <directive>
next event sun-sat
next event <file>
next event null
好的,一个起点可以是在调用解组器时设置一个断点,并准确地检查传递的参数
我要检查的第一件事是,您所传递的实际上是xml,并且它是格式良好且有效的。好的,一个起点可以是在调用解组器时设置一个断点,并准确地检查它所传递的参数
我要检查的第一件事是,您传递的实际上是xml,一个好的方法是使用JAXBits实现源代码和IDE进行调试。一个好的方法是使用JAXBits实现源代码和IDE进行调试。为NullPointerException添加一个异常断点。当它被点击时,探索调用堆栈中更高的几个级别以找出局部变量的状态,您可能会得到关于什么是null的线索。为NullPointerException添加一个异常断点。当它被点击时,探索调用堆栈中更高的几个级别以找出局部变量的状态,您可能会得到关于什么是null的线索。您使用的是什么IDE?如果是Eclipse或Netbeans,您可以使用它们的调试器。发现问题:我正在使用自己的xml事件进行解组。如果键为null,则代码new CharacterSimpleKey将导致此异常。您使用的IDE是什么?如果是Eclipse或Netbeans,您可以使用它们的调试器。发现问题:我正在使用自己的xml事件进行解组。如果键为null,则代码new CharacterSimpleKey将导致此异常。