0

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ストリームパーサーを呪い、独自の単純なパーサーを作成するという代替案に直面しています。他のソフトウェアのバグや貧弱なデザインを探求するのにうんざりしている:(

4

2 に答える 2

0

XercesまたはSaxonを試してみることをお勧めします。

于 2010-09-27T22:09:06.360 に答える
0

エラーが見つかりました。申し訳ありませんが、回答を投稿するのを忘れていましたが、仕事に圧倒されました。私は今思い出し、今答えます。私のコードでは nullpointer 例外でした。XMLCommandsHandler が呼び出しているコード。もちろん、SAX パーサーとは何の関係もありません。

申し訳ありません。

于 2010-10-20T16:27:08.090 に答える