1. ホーム
  2. java

[解決済み] org.xml.sax.SAXParseException: VALID* XML のファイルの早期終了

2022-02-15 19:13:18

質問

ここ数日、あるサーバーで非常に奇妙な "Premature end of file." 例外が発生しています。これは 同じ コンフィギュレーション XML は別のサーバーで問題なく動作しています。これら両方のサーバーでTomcat 5.0.28を使用しています。このコードはずっと(7年以上)動作していましたが、最近のサーバークラッシュの後、1つのサーバーでこの問題に直面しました。XMLとJavaのパースコードには何の変更もありません :(

Java のバージョンの違いだけです。

問題のあるサーバー java バージョン "1.6.0_16"。 Java(TM) SE ランタイム環境 (ビルド 1.6.0_16-b01) Java HotSpot(TM) 64ビットサーバーVM(ビルド14.2-b01、ミックスモード)。

動作するサーバー java バージョン "1.6.0_07"。 Java(TM) SE ランタイム環境 (ビルド 1.6.0_07-b06) Java HotSpot(TM) 64ビットサーバVM(ビルド10.0-b23、ミックスモード)。

以下は、数年前から動作しているJavaのコードです。

private void readSource(final InputSource in ) {
    try {
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        DocumentBuilder db = dbf.newDocumentBuilder();
        Document doc = db.parse(in);
        Element elt = doc.getDocumentElement();

        this.readElement( elt );
    } catch ( Exception ex ) {
        ex.printStackTrace();
        throw new ConfigurationException( "Unable to parse configuration information", ex );
    }
}

そして、ここで例外が発生します。

[Fatal Error] :-1:-1: Premature end of file.
org.xml.sax.SAXParseException: Premature end of file.
        at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
        at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
        at com.circus.core.Configuration.readSource(Configuration.java:706)

すでにXMLを検証してみましたが、エラーは見つかりませんでした。他に何か問題がありそうな箇所はありますか?

何かご指摘があれば、ぜひお願いします。

TIA - マニッシュ

解決方法は?

これは解決済みです。問題は別のところにありました。cronジョブ内の別のコードが、XMLを0長のファイルに切り捨てていました。私はそれに対処しました。