在使用 jdk 的 javax.xml.parsers.SAXParser 解析来自套接字的流时,我得到一个非常神秘的 NullPointerException。
我的 InputSource 是我通过扩展 FilterInputStream 创建的 RecordingInputStream,以便能够在日志文件中记录我在套接字上接收到的所有数据,然后再进入解析器。通过使用这种方式,我现在可以看到,当以下标记出现在流中时,会专门抛出 NullPointerException:
<order act="D" order_id="16508679" scn="147185767940" reason="DELETE_ORDR" who_id="90296"/>
否则,流的解析工作正常。所有其他经常出现的 XML 标记都被成功解析(不抛出异常),并且相应的 XMLCommandsHandler 的方法确实被正确调用。
请问,为什么会出现这个 NullPointerException 的任何线索?否则,我将面临诅咒所有现成的 XML 流解析器的替代方案,并编写我自己的简单解析器。厌倦了探索其他软件的错误,或者糟糕的设计:(