Java 如何调试此NullPointerException

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.

使用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.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将导致此异常。